我正在寻找具有消息持久性保证的流服务器,即在服务器确认向生产者发布之前,可以保证生产者发布的消息被持久存储。
我的用例要求我们减少丢失任何生成的消息的可能性。如果需要,生产者可以重播消息,但他们需要确保 ACKed 消息持久保存,并将由流服务器传递给消费者。
NATS 流服务器似乎在做一些事情,但是集群和容错的文档并没有很清楚地说明在每种情况下都提供了哪些持久性保证。关于生产者集成的文档确认服务器将主动 ACK 已发布的消息,无论是同步还是通过回调,但它没有明确 ACK 是否意味着该消息在此时已持久存储。
关于存储配置的文档,特别是SQL 选项简要提到了来自服务器的 ACK 意味着持久存储保证,但目前尚不清楚在集群和容错以及不同的持久性后端(文件或 SQL)的情况下究竟如何应用。