<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
gRPC
是通訊協定基於 HTTP/2
,支援多語言的 RPC
框架,使用 Protobuf
作為它的介面設計語言(IDL
),可以通過 protoc
工具生成 Golang
語言的結構體。
RPC:Remote Procedure Call
的縮寫,譯為遠端過程呼叫(也可譯為遠端方法呼叫或遠端呼叫),它是計算機通訊協定。該協定可以實現呼叫遠端服務就像呼叫本地服務一樣簡單,無需關心跨網路,跨平臺,跨語言等問題。
gRPC
訊息序列化方式通常使用 Protobuf
,它是二進位制格式,體積小,網路傳輸快,佔用頻寬流量少,呼叫效能更高。
IDL
gRPC
使用 ProtoBuf
來定義服務,ProtoBuf
是由 Google
開發的一種資料序列化協定(類似於 XML
、JSON
)。ProtoBuf
能夠將資料進行序列化,並廣泛應用在資料儲存、通訊協定等方面。
多語言支援
gRPC
支援多種語言,並能夠基於語言自動生成使用者端和伺服器端功能庫。目前已提供了 C
版本 grpc
、Java
版本 grpc-java
和 Go
版本 grpc-go
,其中,grpc
支援 C
、C++
、Node.js
、Python
、Ruby
、Objective-C
、PHP
和 C#
等語言,grpc-java
已經支援 Android
開發。
HTTP2
gRPC基於HTTP2標準設計,帶來了更多強大功能,如雙向流、頭部壓縮、多複用請求等。這些功能帶來重大益處,如節省頻寬、降低TCP連結次數、節省CPU使用和延長電池壽命等。同時,gRPC還能夠提高了雲端服務和Web應用的效能。gRPC既能夠在使用者端應用,也能夠在伺服器端應用,從而以透明的方式實現使用者端和伺服器端的通訊和簡化通訊系統的構建。
gRPC 預設使用 Protobuf 作為介面設計語言,在 .proto
檔案中使用 service 關鍵字定義服務,使用 rpc 和 returns 關鍵字定義指定請求引數和返回結果的方法。
gRPC 提供了 Protobuf 編譯器外掛 protoc-gen-grpc
,用於編譯 .proto
檔案,生成伺服器端和使用者端程式碼,我們只需在伺服器端編寫實現 Api 的程式碼,然後在使用者端呼叫 Api。
syntax = "proto3"; import "google/protobuf/any.proto"; package hello; option go_package = "proto/gen/go"; message HelloReq { string name = 1; } message HelloResp { int32 code = 1; string greet = 2; google.protobuf.Any details = 3; } service HelloService { rpc Greet(HelloReq) returns (HelloResp); }
通過 protoc 命令編譯 .proto
檔案,自動生成伺服器端和使用者端程式碼。
在伺服器端,手動編寫生成的伺服器端方法的業務邏輯程式碼,然後執行 gRPC 服務,接收並處理使用者端請求,gRPC 服務自動解碼請求引數,然後執行服務的方法,並將返回結果自動進行編碼。
在使用者端,實現和服務相同的方法,然後使用者端可以本地呼叫這些方法,將請求引數封裝在 Protobuf 的訊息型別中,gRPC 將請求傳送給伺服器,並返回伺服器的 Protobuf 序列化方式的響應訊息。
參考文章:
到此這篇關於Golang語言實現gRPC的具體使用的文章就介紹到這了,更多相關Golang gRPC內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45