原文链接:https://blog.youkuaiyun.com/ayqy42602/article/details/108626009
grpc底层也是支持数据传递,用的是metadata,就像http请求当中设置header用来传递数据。
go-zero中使用metadata简单例子
1.客户端创建
MD 类型实际上是map,key是string,value是string类型的slice。
type MD map[string][]string
创建的时候可以像创建普通的map类型一样使用new关键字进行创建:
md := metadata.New(map[string]string{"key1": "val1", "key2": "val2"})
或者使用Pairs创建,相同的key值会被组合成slice。
md := metadata.Pairs(
"key1", "val1",
"key1", "val1-2", // "key1" will have map value []string{"val1", "val1-2"}
"key2", "val2",
)
key不区分大小写,会被统一转成小写。