Documentation
¶
Overview ¶
Package metadata 提供服务间调用的透传元数据机制。
设计目标:
- MD 是纯 map,与传输层无关,可在 HTTP / gRPC / Cron 之间无缝传递
- 键统一小写,与 HTTP/2 header 和 gRPC metadata 的规范一致
- 预定义常用键,但不强制使用,业务可自由扩展
典型用法:
// 服务端(从传输层读取并注入 context) ctx = metadata.NewContext(ctx, md) // 业务代码(读取) md := metadata.FromContext(ctx) tenantID := md.Get(metadata.KeyTenantID) // 客户端(从 context 写入传输层) md := metadata.FromContext(ctx) md.Inject(req.Header) // HTTP md.InjectGRPC(ctx) // gRPC outgoing
Index ¶
Constants ¶
View Source
const ( KeyTenantID = "x-tenant-id" // 租户 ID,多租户场景必传 KeyCaller = "x-caller" // 调用方服务名,链路追踪辅助 KeyEnv = "x-env" // 环境标(prod/staging/dev),灰度路由 KeyRequestID = "x-request-id" // 请求 ID,与 requestid 中间件共享键名 KeyUserID = "x-user-id" // 当前用户 ID,鉴权后透传 )
预定义的透传键,与 HTTP Header 名称一致(小写)。 业务可直接用字符串字面量扩展,不必局限于此。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type MD ¶
MD 是服务间透传的元数据集合,键统一小写。 零值可直接使用。
func FromContext ¶
FromContext 从 ctx 中取出 MD;若不存在返回空 MD(非 nil,可直接读写)。
Directories
¶
| Path | Synopsis |
|---|---|
|
Package propagation 提供 MD 在 HTTP / gRPC 传输层的注入与提取实现。
|
Package propagation 提供 MD 在 HTTP / gRPC 传输层的注入与提取实现。 |
Click to show internal directories.
Click to hide internal directories.