grpc metadata介紹


在http請求當中我們可以設置header用來傳遞數據,grpc底層采用http2協議也是支持傳遞數據的,采用的是metadata。
Metadata 對於 gRPC 本身來說透明, 它使得 client 和 server 能為對方提供本次調用的信息。
就像一次 http 請求的 RequestHeader 和 ResponseHeader,http header 的生命周期是一次 http 請求, Metadata 的生命周期則是一次 RPC 調用。

grpc是基於http2.0的rpc框架

那么如何傳遞一些用戶自定義的數據呢?比如trace_id,span_id等

  通過http的頭部進行傳遞

grpc對於http頭部傳遞數據進行了封裝

  metadata,單獨抽象了一個包

  google.golang.org/grpc/metadata

   type MD map[string][]string 其實就是一個map
 

grpc metadata介紹

客戶端添加metadata ,構造一個metadata
md := metadata.New(map[string]string{"key1": "val1", "key2": "val2"})
使用Pair函數

 客戶端發送metadata

 

 

客戶端發送方式二

 

 

服務端接收metadata

服務端發送metadata

 

 

 

實戰:

客戶端發送請求

 

服務端接收數據

 

 

關聯文章:

golang分布式鏈路追蹤 OpenTracing  jaeger


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM