爲分佈式(對等)羣集設計通知/推送服務並不容易。例如,如果我想要Cassandra推送通知到服務A,如果一個表字段已通過服務B更改其值,那並不容易。這是因爲Cassandra是以分散的方式組織的,例如5個節點,並且他們不知道何時提交三個節點的法定人數,然後才推動變更爲A。但是,在一個集中式(主 - 從)集羣中,事情是不同的。例如,ZooKeeper知道5個節點中的3個節點是否被提交,並且可以安排通知服務。如何在分散集羣中設計通知/推送服務?
我們如何在分散集羣中設計這樣的推送服務?
一個明顯的解決方案是等待一段時間(比如10秒),並通知B無論如何。
另一種選擇:如果服務乙收到卡桑德拉3個的ACK,該仲裁已經被滿足,乙然後將通知發送到一個而不是卡桑德拉本身發送。
還有其他體面的解決方案嗎?