Nats Version
caution
- nats.go 最好匹配服务端版本
 
| ver | date | nats.go | 
|---|---|---|
| Nats 2.12 | 2025-09-22 | |
| Nats 2.11 | 2025-03-20 | |
| Nats 2.10 | 2023-09-20 | |
| Nats 2.9 | 2022-09-09 | |
| Nats 2.8 | 2022-04-19 | |
| Nats 2.7 | 2022-01-04 | |
| Nats 2.6 | 2021-09-22 | v1.13 | 
| Nats 2.5 | 2021-09-10 | v1.12.1 | 
| Nats 2.4 | 2021-08-27 | v1.12.0 | 
| Nats 2.3 | 2021-06-24 | v1.11.0 | 
| Nats 2.2 | 2021-03-15 | v1.10.0 | 
| Nats 2.1 | 2019-09-21 | |
| Nats 2.0 | 2019-05-05 | 
tip
- https://github.com/nats-io/nats-server/releases
 - https://github.com/nats-io/nats-architecture-and-design/tree/main/adr
 
Nats 2.12
- JetStream API level -> 2
 - Added delayed message scheduling
Nats-Schedule: @at 2009-11-10T23:00:00Z- 时间- CORN
 - @at
 - preset @hourly, @yearly, @annually, @monthly, @weekly, @daily, @midnight
 - Intervals @every 1m
 
Nats-Schedule-TTL: 5mNats-Schedule-Target: orders- 目标 Stream- Nats-Schedule-Source - 从哪里读取 last message
 - 返回
- Nats-Scheduler
 - Nats-Schedule-Next - 下次调度时间, 只调度一次的为 
purge Nats-TTL=Nats-Schedule-TTL
 - https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-51.md
 
 - Atomic batch publishes
- 开启 Nats-Batch-Id:uuid, Nats-Batch-Sequence:1
 - 增加 Nats-Batch-Id:uuid, Nats-Batch-Sequence:n
 - 提交 Nats-Batch-Id:uuid, Nats-Batch-Sequence:n, Nats-Batch-Commit:1
 - https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-50.md
 
 - Counter
 - Prioritised mode for consumer priority groups
 - Support for trusted proxies
 - Added the ability to promote mirrors to normal streams by removing the mirror configuration
 - streams to opt into async writes
 - max_buffered_msgs 默认值 x10 -> 100,000
 - https://github.com/nats-io/nats-server/releases/tag/v2.12.0
 
Nats 2.11
- pub/sub message tracing - OpenTelemetry
- ADR#41 NATS Message Path Tracing
 
 - JetStream
- ADR#31 batched requests
- batched direct-gets
 - batched direct multi-get requests
 
 - pausing/resuming consumers
 
 - ADR#31 batched requests
 
Nats 2.10
- 确保先升级到了 2.9.22+ 再升级 2.10
 $SYS.REQ.USER.INFO- userinfo
 
$SYS.REQ.SERVER.{server-id}.RELOAD- 重新加载配置
 
- S2 压缩
- cluster
 - leafnode
 - jetstream 存储
 
 - Auth Callout - external auth providers
 - JetStream
- subject transforms
- InputSubjectTransform
 - 语法同核心的 transform
 
 - metadata 配置信息
 - consumers filtering on multiple subjects
 - 允许 republish
 - re-encrypt
 
 - subject transforms
 - 监控
- $SYS.REQ.SERVER.PING.IDZ
 $SYS.REQ.SERVER.<id>.PROFILEZ
 - MQTT
- QoS2 exactly-once delivery
 
 - Subject Mapping
- 支持指定 cluster 过滤
 
 $SYS.REQ.SERVER.<id>.KICK- disconnect client by id/name$SYS.REQ.SERVER.<id>.LDM- send lame duck mode
Nats 2.9
Nats 2.8
Nats 2.7
- JetStream
- 新增配置 max_file_store, max_memory_store
 - 支持客户端 临时 Pull 消费
 
 - MQTT
- 支持 WebSocket - /mqtt
 
 - 新增配置: max_connections, max_subscriptions, max_payload, max_leafnodes
 
note
- JetStream LeafNode domains #2693
 
Nats 2.6
- JetStream's reserved memory and memory used
- /jsz, /varz
 
 
Nats 2.5
- MQTT/Monitoring
- /connz
 
 
Nats 2.4
- JetStream
- Push Consumer 行为发生变化 - 客户端和服务端都需要升级
- 避免相同 durable consumer 重复 sub
 - 避免相同 durable consumer 创建多个 queue group
 - queue sub 时,如果没有 consumer 和 durable 则创建临时 js consumer
 
 - ConsumerConfig.DeliverGroup consumer 关联 queue
 - ConsumerInfo.PushBound 表示已经绑定 push 关系
 
 - Push Consumer 行为发生变化 - 客户端和服务端都需要升级
 - v2.4.0
 
Nats 2.3
- OCSP - Online Certificate Status Protocol
 - JetStream
- stream purge by subject
 - per-subject message limit
 - encryption data at rest
 
 
[ ext_ca ]
authorityInfoAccess = OCSP;URI:http://ocsp.example.net:80
tlsfeature = status_request
# ocsp: true
ocsp {
  # auto, must, always, never
  mode: must
  url: "http://ocsp.example.net"
}
Nats 2.2
- 新增 JetStream
 - 支持 MQTT 3.1.1
 - 支持 WebSocket 链接
 - Message Header
 - Security & Account
- CIDR Block
 - Time-Based Account Restrictions
 - Default User Permissions
 
 - Monitoring
- jsz
 - /accountz
 - /varz
 - /leafz
 
 - JWT
 
Nats 2.1
- add rtt /routez
 - /leafz
 
Nats 2.0
- NKey
 - Accounts
 - JWT
 - Gateway
 - Lean Nodes
 - System events
 - new route protocol