假设您有n个进程,n> 2.您希望在它们之间达成协议,即一个进程是活动的.所以他们需要彼此投票以确定哪一个是活跃的.
所有进程都可能随时失败,我们希望尽可能让一个进程处于活动状态,但......
我们必须永远不要同时有两个活跃,所以如果他们不能确定没有一个活跃的更好.(即我们想避免裂脑)
它们之间唯一可用的通信机制是pub-sub消息传递(不是点对点).
可以使用一个或多个数据库,但没有一个数据库应该是单点故障.IE浏览器.如果所有流程都可以工作,那将是非常不受欢迎的,并且由于丢失了单个数据库而无法这样做.
设计?需要发布什么消息?
messaging ×1