为分布式(对等)群集设计通知/推送服务并不容易。例如,如果我想要Cassandra推送通知到服务A,如果一个表字段已通过服务B更改其值,那并不容易。这是因为Cassandra是以分散的方式组织的,例如5个节点,并且他们不知道何时提交三个节点的法定人数,然后才推动变更为A。但是,在一个集中式(主 - 从)集群中,事情是不同的。例如,ZooKeeper知道5个节点中的3个节点是否被提交,并且可以安排通知服务。如何在分散集群中设计通知/推送服务?
我们如何在分散集群中设计这样的推送服务?
一个明显的解决方案是等待一段时间(比如10秒),并通知B无论如何。
另一种选择:如果服务乙收到卡桑德拉3个的ACK,该仲裁已经被满足,乙然后将通知发送到一个而不是卡桑德拉本身发送。
还有其他体面的解决方案吗?