[golang grpc] 架構介紹

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

官方網站

http://www.grpc.io/

http://www.grpc.io/docs/quickstart/go.html

grpc安裝

• go安裝

       目前grpc需要go 1.5以上版本支援。go安裝可以參考:http://www.cnblogs.com/heartchord/p/5127503.html。

• protocol buffer安裝

       protocol buffer和go外掛程式安裝可以參考:http://www.cnblogs.com/heartchord/p/5337863.html。

• grpc安裝

go get google.golang.org/grpc

• 官方例子測試

       grpc包下內建測試例子,路徑為google.golang.org/grpc/examples,我們使用例子下的helloworld工程進行測試。

      

編譯server和client:

go install google.golang.org\grpc\examples\helloworld\greeter_servergo install google.golang.org\grpc\examples\helloworld\greeter_client

開啟兩個控制台分別運行greeter_server.exe和greeter_client.exe:

      

      

helloworld工程分析

• .proto和.pb.go檔案

       使用過protobuf就會知道,無論什麼工程都需要一個.proto檔案來定義資料的結構,該檔案經過protoc.exe輸出即可得到對應語言的原始碼檔案,例如c++得到的就是xxxx.pb.h和xxxx.pb.cc檔案。而對於golang,則需要上述的外掛程式支援,對應得到的是xxxx.pb.go檔案。

       官方文檔:

       https://developers.google.com/protocol-buffers/docs/proto3

       https://developers.google.com/protocol-buffers/docs/gotutorial

       

proto檔案中HelloRequest和HelloReply訊息將被轉換為go語言結構體,並自動添加了一些成員函數。

proto檔案中Greeter服務將自動產生GreeterClient和GreeterServer介面,其中GreeterClient將擁有一個內部類型greeterClient,greeterClient定義了SayHello的具體行為;而GreeterServer中的SayHello需要自行定義。

greeterClient定義的SayHello具體行為核心一點為調用服務端的SayHello函數:

      

服務端需要定義SayHello的具體行為:

        

• pb.go檔案產生命令

// cd $GOPATH/src/google.golang.org/grpc/examples/helloworldprotoc -I helloworld/ helloworld/helloworld.proto --go_out=plugins=grpc:helloworld

      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.