Headers

消息标头在多种 JetStream 上下文中使用,例如去重、自动清除消息、重新发布消息的元数据等。

Nats- 是一个保留命名空间。请为你自定义的消息头使用其他前缀。此列表可能不完整,额外的消息头可能会用于 API 内部消息,或用于监控和控制的消息。

发布

客户端在发布消息时可以设置的标头。这些标头会被服务器识别。

名称
描述
示例
版本

Nats-Msg-Id

客户端定义的消息唯一标识符,服务器将在配置的“重复窗口”内使用该标识符进行去重。

9f01ccf0-8c34-4789-8688-231a2538a98b

2.2.0

Nats-Expected-Stream

用于断言发布的消息将被某个预期的流接收。

my-stream

2.2.0

Nats-Expected-Last-Msg-Id

用于在流级别应用乐观并发控制。该值为最后一个预期的 Nats-Msg-Id,如果当前 ID 不匹配,服务器将拒绝发布。

9f01ccf0-8c34-4789-8688-231a2538a98b

2.2.0

Nats-Expected-Last-Sequence

用于在流级别应用乐观并发控制。该值为最后一个预期的序列号,如果当前序列号不匹配,服务器将拒绝发布。

328

2.2.0

Nats-Expected-Last-Subject-Sequence

用于在主题级别应用乐观并发控制。该值为最后一个预期的序列号,如果当前序列号不匹配消息的主题,服务器将拒绝发布。

38

2.3.1

Nats-Expected-Last-Subject-Sequence-Subject

可能包含通配符的主题。与 Nats-Expected-Last-Subject-Sequence 一起使用。服务器将针对给定主题而非正在发布的主题强制执行最后序列号。

events.orders.1.>

2.11.0

Nats-Rollup

用于清除流或主题级别之前的所有消息。rollup message(汇总消息)将保留在流中。

all 清除整个流,sub 清除发送此消息的主题。不允许使用通配符主题,否则会导致未定义的行为。

2.6.2

重新发布

当消息被流重新发布时(必须在流设置中配置),这些标头会被设置。

不要在客户端发布的消息上设置这些标头。

名称
描述
示例
版本

Nats-Stream

消息重新发布的流名称。

Nats-Stream: my-stream

2.8.3

Nats-Subject

消息的原始主题。

events.mouse_clicked

2.8.3

Nats-Sequence

消息的原始序列号。

193

2.8.3

Nats-Last-Sequence

具有相同主题的消息的最后一个序列号,如果没有,则为零。

190

2.8.3

Nats-Time-Stamp

消息的原始时间戳。

2023-08-23T19:53:05.762416Z

2.10.0

源(Sources)

隐式添加到从其他流获取的消息的标头。

未来消息头内容的格式可能发生变更。请采取保守的解析策略,并假定未来可能会添加更多字段,或更旧版本的 nats-server 可能包含较少的字段。

名称
描述
示例
版本

Nats-Stream-Source

包含空格分隔的: - 原始流名称(如果跨域获取则使用域哈希消歧) - 原始序列号 - 主题过滤器列表 - 目标转换列表 - 原始主题

ORDERS:vSF0ECo6 17 foo.* bar.$1 foo.abc

2.2.0

仅标头

当消费者配置为“仅标头”时添加到消息的标头,省略消息体。

名称
描述
示例
版本

Nats-Msg-Size

表示消息大小(字节)。

1024

2.6.2

镜像

镜像内部流量控制消息使用的标头。

以下内容仅供参考,如有更改,恕不另行通知。

名称
描述
示例
版本

Nats-Last-Consumer

2.2.1

Nats-Last-Stream

2.2.1

Nats-Consumer-Stalled

2.4.0

Nats-Response-Type

2.6.4

最后更新于