我遇到了这个问题,到目前为止似乎唯一的解决方案是更强的一致性模型。该服务是Amazon S3,它提供了最终的一致性。我们使用它作为blob存储后端。最终一致性和消息传递
问题是,我们将消息传递模式引入了我们的应用程序,我们喜欢它。毫无疑问,这是好处。但是,它似乎要求更强的一致性。情形:
- 子系统从用户获取数据
- 数据被保存到S3发送
- 消息由另一子系统接收
- 消息
- 数据从S3
- 读...蟋蟀。这是旧数据吗?有时候是这样。
所以。我们试图明显地发送消息中的数据,以避免S3读取不一致。但是这是非常糟糕的事情,消息会变得不必要的巨大,当接收者太忙或者宕机,并且在已经有新数据可用的情况下接收到消息时,它会失败。
有没有解决这个问题的方法,还是我们真的需要转储S3来获得像RDBMS或MongoDB这样更加一致的后端?
我们决定将blob存储转换为MongoDB,它提供了很强的一致性。 – skrat