【发布时间】:2026-01-27 08:10:01
【问题描述】:
我正在寻找具有消息持久性保证的流服务器,即在服务器确认向生产者发布之前,保证生产者发布的消息被持久存储。
我的用例要求我们减少丢失任何生成的消息的可能性。如果需要,生产者可以重播消息,但他们需要确保 ACKed 消息持久保存,并将由流服务器传递给消费者。
NATS 流服务器似乎按照这些思路做了一些事情,但是 clustering 和 fault tolerance 的文档并没有很清楚地说明每种情况下提供的持久性保证。 producer integration 上的文档确认服务器将主动 ACK 已发布的消息,无论是同步还是通过回调,但它没有明确 ACK 是否意味着此时消息已被持久存储。
关于存储配置的文档,特别是 SQL options 简要提到来自服务器的 ACK 意味着持久存储保证,但仍不清楚在集群和容错以及不同的持久性后端(文件或SQL)。
【问题讨论】:
标签: nats.io nats-streaming-server