news 2026/4/25 12:36:36

gRPC -- Guides -- Metadata

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
gRPC -- Guides -- Metadata

Metadata(元数据)

解释元数据的定义、传输方式与用途

概述(Overview)

元数据是一条旁路通道,用于让客户端与服务端传递与 RPC 关联的附加信息。

gRPC 元数据是一组键值对,随 gRPC 初始请求 / 最终请求或响应一同发送,用于提供调用相关附加信息,如认证凭证、追踪信息或自定义请求头。

gRPC 元数据基于HTTP/2 头部实现:

  • 键为 ASCII 字符串
  • 值可为 ASCII 字符串或二进制数据
  • 键不区分大小写
  • 键不能以grpc-前缀开头(该前缀为 gRPC 内部保留)

客户端与服务端均可收发元数据:

  • Headers(请求头):客户端在初始请求前发送给服务端;服务端在初始响应前发送给客户端。
  • Trailers(响应尾):服务端在关闭 RPC 时发送。

gRPC 元数据适用于多种场景:

  • 认证(Authentication):用于向服务端传递认证凭证,可基于标准 HTTP Authorization 请求头实现 OAuth2、JWT 等认证方案。
  • 追踪(Tracing):用于向服务端传递追踪信息,可在分布式系统中追踪请求流转过程。
  • 自定义请求头(Custom headers):用于客户端 / 服务端传递自定义请求头,实现负载均衡、限流、服务端详细错误信息透传等应用专属功能。
  • 内部用途(Internal usages):gRPC 内部使用 HTTP/2 头部与响应尾,并与应用层指定的元数据集成。
注意事项(Be Aware)
警告:服务端可能限制请求头大小,建议默认上限为8 KiB。

自定义元数据必须遵循 PROTOCOL-HTTP2 中定义的 “Custom-Metadata” 格式,二进制头部无需进行 Base64 编码。

Headers(请求头)

Headers 在客户端发送初始请求数据前、服务端发送初始响应数据前传输,包含认证凭证、RPC 处理策略等信息。部分请求头(如授权请求头)由 gRPC 自动生成。

自定义请求头处理逻辑与编程语言相关,一般通过拦截器实现。

Trailers(响应尾)

Trailers 是在消息数据之后发送的特殊请求头,用于内部传递 RPC 调用结果。在应用层,自定义响应尾可用于传递非数据直接相关信息,如服务端利用率、查询开销等。Trailers 仅由服务端发送。

更多细节,请参考以下文档:

  • proposal: G1 true binary metadata
  • proposal: L7 go metadata api
  • proposal: L48 node metadata options
  • proposal: L42 python metadata flags
  • proposal: L11 ruby interceptors

语言支持(Language Support)

LanguageExamplesNotes
JavaJava Header
Java Error Handling
GoGo Metadata
Go Metadata Interceptor
Go Documentation
C++C++ Metadata
NodeNode Metadata
PythonPython Metadata
RubyExample upcoming
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 12:34:31

微服务架构下如何避免雪崩效应

微服务架构下如何避免雪崩效应 随着微服务架构的普及,系统被拆分为多个独立服务,虽然提升了灵活性和可扩展性,但也带来了新的挑战,比如雪崩效应。当一个服务因故障或高延迟导致级联失败,整个系统可能崩溃。如何避免这…

作者头像 李华
网站建设 2026/4/25 12:31:00

把 BigQuery 接进 SAP HANA Cloud,Google BigQuery Remote Source 的实战思路与落地细节

这类场景我这两年见得越来越多,明细数据、日志数据、广告数据,已经躺在 Google BigQuery 里,另一头的分析模型、语义层、应用查询,又希望继续留在 SAP HANA Cloud。真到了项目里,大家通常并不想把整仓数据再搬一遍,更不想为了几张分析表额外做一条重型同步链路。这个时候…

作者头像 李华
网站建设 2026/4/25 12:31:00

从SBC到LDAC:高通QCC30xx/51xx系列蓝牙音频平台解码能力全解析

1. 高通QCC30xx/51xx系列蓝牙音频平台概览 如果你最近在关注蓝牙音频设备,一定对高通QCC系列芯片不陌生。作为目前TWS耳机和蓝牙音箱的主流方案,QCC30xx和QCC51xx系列正在重新定义无线音频体验。我拆解过数十款采用这些方案的设备,发现它们最…

作者头像 李华
网站建设 2026/4/25 12:30:59

CentOS7服务器维护:除了reboot,这几种安全重启/关机姿势你都知道吗?

CentOS7服务器维护:安全重启与关机的专业实践指南 凌晨三点,服务器监控系统突然发出刺耳的警报声——内存泄漏导致关键服务响应迟缓。作为运维人员,此刻面临一个艰难抉择:是直接执行reboot快速解决问题,还是采用更稳妥…

作者头像 李华