我遇到了這個問題,到目前爲止似乎唯一的解決方案是更強的一致性模型。該服務是Amazon S3,它提供了最終的一致性。我們使用它作爲blob存儲後端。最終一致性和消息傳遞
問題是,我們將消息傳遞模式引入了我們的應用程序,我們喜歡它。毫無疑問,這是好處。但是,它似乎要求更強的一致性。情形:
- 子系統從用戶獲取數據
- 數據被保存到S3發送
- 消息由另一子系統接收
- 消息
- 數據從S3
- 讀...蟋蟀。這是舊數據嗎?有時候是這樣。
所以。我們試圖明顯地發送消息中的數據,以避免S3讀取不一致。但是這是非常糟糕的事情,消息會變得不必要的巨大,當接收者太忙或者宕機,並且在已經有新數據可用的情況下接收到消息時,它會失敗。
有沒有解決這個問題的方法,還是我們真的需要轉儲S3來獲得像RDBMS或MongoDB這樣更加一致的後端?
我們決定將blob存儲轉換爲MongoDB,它提供了很強的一致性。 – skrat