搬家公告 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 2月 11, 2012 現在 Gelis 新的文章會以點部落的為主,下面為新的網址: http://www.dotblogs.com.tw/gelis/ 兩處新舊文章都歡迎各位能夠多多支持。感謝各位啦 :) 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
什麼是 gRPC ? 4月 04, 2019 圖片取自: https://grpc.io/docs/guides/ gRPC 是什麼?能吃嗎? 在安裝了 .NET Core 3.0 之後,眼尖的朋友應該會發現,在新增 ASP.NET Core 網頁類型專案裡,會看見一個 gRPC Service 類型的專案,其實它也不是什麼很新的東西,早在十多年前 Google 就使用這樣的 RPC 協定進行一些大量的可靠性微服務的存取,聽到這,難道現有的 Web API 不可靠嗎?其實不是的,它主要用在移動設備等提供高效簡單且跨平台的通訊與熱插拔的驗證機制。 gRPC 的運作原理 gRPC 顧名思義,是種基於 RPC 的通訊協定,不同於 Web API 走的傳統 HTTP 基礎協定,它有點像是 Socket ,但應該說是基於 Socket, 或精確地來說它是基於 HTTP/2 的協定 ,gRPC 是種協議緩衝協定,它必須事先定義 IDL (Interface Definition Language) 描述檔,看到 IDL 對於一些熟悉 COM/DCOM 的朋友一定非常的熟悉,對!沒錯!就是類似的東西!但,這邊的 IDL 是用一種副檔名為 .proto 檔案來是先定義在分散式環境中,要傳輸的序列化結構資訊,當然它也可以跟 JSON 一起使用。 也就是說,要使用 gRPC 您必須先定義 .proto 協議,然後透過 Compile 的支援,編譯成特定語言框架。而很高興的是,C# 也支援了,然而其實根據官方的資料顯示,C# 應該在 .NET Core 2.1 開始就支援了,只是到了 .NET Core 3.0 才有樣版的支援。 而使用 gRPC 的協議緩衝區的服務可以做到 Stub 的機制,也就是說,它就像是許多 RPC 一樣,Client 在呼叫 Server 端時,其實是對 Stub 進行叫用,Stub 在這就像個緩衝區一般,但更細部的說,應該是一個遠程服務的替身,這應該又讓許多熟悉 COM/RPC 通訊的朋友覺得熟悉了起來,是的!沒有錯。 在 .NET Core 3.0 裡使用 gRPC 目前支援 .proto 擴展為 gRPC 協議緩衝區的編譯器只有 .NET Core 了 , 根據 Github 上的說明 .NET Framework 4.5+ 以上或 Mono 4+ 以上也可支援,而 gRPC 也完全的跨平台。要在 .... 閱讀完整內容
什麼是 gRPC(二)- 來撰寫第一個 Hello World 吧! 4月 10, 2019 前言 上一篇 什麼是 gRPC ,筆者大致介紹了 gRPC Service 的基本概念,這一次,我們就來小試一下身手,撰寫一個 Hello World (迷之音:嘗試新技術時,總是得先來一個 Hello World ~我不想違背這良好傳統阿阿阿阿) 使用環境 Visual Studio 2019 .NET Core 3.0.100-preview3-010431 開始進行 撰寫 gRPC 除了先準備好基礎環境、選定一種 作業系統/ 程式語言 Language 外、(Framework/SDK/Runtime)等環境備妥後,就可以開始撰寫, (1). 開始撰寫 gRPC 第一步就是先定義 .proto 協議了 上一篇筆者提到,gRPC 的 Server 與 Client 必須使用相同的協議才可進行溝通,一般來說,你應該使用 protoc.exe 編譯器先行編譯過 greet.proto 協議檔,並產出 C# 程式碼檔案後才可繼續,而在 Visual Studio 2019 裡,拜 MSBuild 之賜,已經有人預先寫好 .Target 檔案了 (什麼是 MSBuild ?什麼是附檔名 .Target 檔案可參考: MSBuild .targets 檔案 ) 筆者先撰寫一個 SayHelloWorld 方法如下: 在協議裡,除了在 service Class 撰寫要公開存取的方法外, 必須在提供『傳入訊息型態』、『回傳訊息型態』 ,這邊我先定義兩個 message,一個是『 HelloMyFirstgRPC 』、另一個是『 HelloMyReply 』 在撰寫 proto 協議檔時,建議先決定 message 回傳型態與傳入的型態,那麼 Visual Studio 2019 會有 InteillSense 的完整支援。不得不說 Visual Studio 2019 在 .proto 協議編輯上的支援已經算不錯了。 注意: 一般來說,Visual Studio 2019 會在背景裡自動編譯 .proto 協議檔案,但始有可能不會有任何提示,所以您也可以自行使用命令列工具進行手動編譯,如下圖,若編譯失敗會出現錯誤訊息,如下圖顯示 return 關鍵字錯誤: protoc.exe 編譯器 & 相關 MSBuild Tools 會隨著 NuGet 套件在 Vis... 閱讀完整內容
開啟Hyper-V的內部虛擬網路 7月 21, 2010 撰文:吳俊毅 時間:2010/7/14 在操作使用Hyper-V的Guest OS時,如果您是使用操作VMWare的方式來思考Hyper-V的虛擬網路設定的話您可能會碰壁,為什麼呢?在VMWare中只要Network的Getwary服務有啟動的話預設的設定就會自動將Guest OS的虛擬網卡透過實體網卡將Guest OS對應成一台網路實體IP位置,所以對實體網路而言好像就是多了台電腦。 在Hyper-V中提供了3種虛擬網路類型: 1. 外部虛擬網路 使虛擬機器直接對應外部實體網卡,這種方式會讓虛擬機器直接存取實體外部網路,筆者實際測試發現會直接搶住實體網路卡。 2. 內部虛擬網路 所謂的內部虛擬網路是讓虛擬機器可以與外部機器溝通,簡單的說就是在您的本機中軟體虛擬一個如192.168.1.1~192.168.1.255的網段,通常用來測試一個虛擬網路環境,比如在當中架設Ap Server、Web Server,或甚至在虛擬網路中架設兩台DB Server來測試Cluster等等,不需使用實體網路來進行測試。 3. 私人虛擬網路 只是讓虛擬機器彼此間通訊,與外部網路隔絕。 如果您是VMWare的慣用者,第二種可能會比較適合您。筆者的測試環境是Windows Server 2008 Enterprise,使用的Hyper-V版本為6.0.6002.18005,要設定虛擬網路可從Hyper-V管理員的主畫面 點選後會進入如下虛擬網路管理員的畫面: 點選左邊的新增虛擬網路即可新增虛擬網路卡,讀者應該發現筆者已經新增了一張內部的網卡(筆者將其稱做Realtek RL8168 for External)。點選該內部網卡後,左半邊有可以設定的項目。筆者先說明想要幹什麼,筆者想讓Hyper-V內部網路同時具備內部虛擬網路的特性,同時又可以存取外部網路,同時外部實體機器也可以存取內部的虛擬機器,如同操作VMWare的習慣那樣。 當新增了Realtek RL8168 for External內部網卡之後在實體電腦的網路連線也會新增一個Realtek RL8168 for External的區域連線,如下圖所示: 接著將實體網卡與虛擬網卡均選起來,按右鍵選單的”新增到橋接器”,如下圖: 這麼可以使剛才我們在Hyper-V內部的Realtek RL8168 for External內部網卡存... 閱讀完整內容
留言
張貼留言