MongoDB更改流保证交付?

问题描述 投票:0回答:1

由于它具有changefeeds功能,我正打算为正在构建的聊天应用程序选择RethinkDB,但是后来我发现MongoDB具有类似的东西,称为Change streams。两者之间最显着的区别是什么?

特别是,我在RethinkDB文档中看到:

由于变更订阅源是单向的,没有从客户返回确认,因此它们不能保证交付。如果需要通过交付保证进行实时更新,请考虑使用通过消息代理(例如RabbitMQ)分发给客户端的模型。

我想知道MongoDB变更流是否相同?是否保证每次数据更改时都会收到更新?

mongodb rethinkdb
1个回答
0
投票

MongoDB更改流由客户端拉出,而不由服务器拉出。

客户端会收到每份更新的恢复令牌,并在从服务器请求更多令牌时将其传递回去。

尽管这不是一个保证。更改流取决于副本集操作日志,因此,如果客户端在请求更多数据之前等待了太长时间,则恢复令牌指示的事件可能已从操作日志中清除,客户端将收到一条错误消息,指示可能错过了更新。

© www.soinside.com 2019 - 2024. All rights reserved.