资讯 NATS Server v2.15.0-preview.1:JetStream 期望状态金属层,提升资产迁移与扩容安全

2026-09-07 05:14:06

NATS Server v2.15.0-preview.1:JetStream 期望状态金属层,提升资产迁移与扩容安全

NATS Server 发布 v2.15.0-preview.1 预览版。这是即将到来的 2.15 系列的第一个预览版(非正式发布候选,仍在测试中,欢迎反馈),包含截至 v2.14.5 的所有变更。核心新特性是 JetStream 的期望状态(desired state)金属层——一个新的流和消费者期望状态协调引擎,显著提高资产移动(move)和扩缩(scale)操作的安全性与可靠性。本文基于官方发布说明,解读 v2.15.0-preview.1 的关键变更。

版本概况

NATS Server v2.15.0-preview.1:

  • 预览版(Pre-release)
  • 发布于 2026 年 8 月 24 日
  • 自上一版本以来包含 101 个提交到 main
  • Go 版本 1.27.0
  • 包含截至 v2.14.5 的所有变更

JetStream 期望状态金属层

新的期望状态协调引擎

  • 为流(streams)和消费者(consumers)引入新的期望状态协调引擎
  • 显著提高资产移动和扩缩操作的安全性与可靠性
  • 涉及 PR:#8432、#8437、#8439、#8443、#8452、#8460、#8476

更安全的扩缩操作

  • 在现有扩缩/移动操作中途更新放置位置或复制因子变得更安全
  • 取消进行中的扩缩/移动更安全
  • 移除 peer 更安全

新端点

取消流移动端点($JS.API.STREAM.CANCEL_MOVE)

  • 进行中的流扩缩/移动操作可以被取消
  • 资产返回其原始放置位置
  • 对应 PR #8476

撤离端点($JS.API.SERVER.EVACUATE)

  • $JS.API.SERVER.EVACUATE:安全地从节点撤离流及其上的任何消费者
  • $JS.API.STREAM.PEER.EVACUATE.*:安全地从流中撤离 peer 及其上的任何消费者
  • 这些操作结合允许维护操作实现数据和状态的完整转移,无需先做 peer-remove
  • 对应 PR #8443

金属层救援($JS.API.META.RESCUE)

  • 用于灾难恢复的金属层救援
  • 对应 PR #8408

实践意义

对运维

  • 节点维护(撤离)现在可以安全地完整转移数据和状态,无需先移除 peer
  • 扩缩中途修改放置/复制因子不再危险
  • 取消误操作的扩缩/移动可直接恢复原状
  • 灾难恢复有金属层救援路径

对 JetStream 用户

  • 资产移动和扩缩的安全性提升意味着更少的运维事故
  • 期望状态协调引擎让系统行为更可预测

总结

NATS Server v2.15.0-preview.1 的核心是 JetStream 期望状态金属层:新的期望状态协调引擎显著提高流和消费者资产移动/扩缩的安全性与可靠性,包括中途更新放置或复制因子、取消进行中的扩缩/移动、peer 移除都更安全。配套新端点:$JS.API.STREAM.CANCEL_MOVE(取消扩缩/移动并恢复原放置)、$JS.API.SERVER.EVACUATE 和 $JS.API.STREAM.PEER.EVACUATE.*(安全撤离节点/peer 上的流与消费者,实现完整数据和状态转移而无需先 peer-remove)、$JS.API.META.RESCUE(灾难恢复的金属层救援)。这是 2.15 系列的预览版,仍在测试中。对 NATS JetStream 运维,预览版预示了更安全的运维操作模型:维护、扩缩、恢复都可以在期望状态协调下可靠完成。

来源:https://github.com/nats-io/nats-server/releases/tag/v2.15.0-preview.1

复制全文 生成海报 NATS 消息中间件 JetStream 2.15.0 发布 Go 运维

推荐文章

程序员茄子在线接单