zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    满血复活
    绝望,绝望、希望
    认真生活的态度
    星期一
    户外穿越
    认真准备
    早点休息
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
  • 原文地址:https://www.cnblogs.com/sunlong88/p/14339928.html
Copyright © 2011-2022 走看看