我正在研究Akka群集分片,在阅读Akka文档和Internet上的某些主题之后,我认为当群集具有无法访问的节点时,只会中断与该节点上的分片的通信。这意味着将告知消息将在其中分片的消息将被缓冲,发件人将收到超时响应,并且消息将被告知其他可用节点上的分片的消息将正常发送和接收。 但是,当我尝试实现一个具有4个节点的集群,然后停止一个节点的服务时,通过Akka HTTP Management进行了检查,并确认它设置为不可访问的,然后我测试了如何从可用节点中的参与者发送消息到其他节点中的参与者。节点并收到超时响应。 因此,任何人都可以帮助我确认集群何时具有无法访问的节点,整个分片系统将无法正常工作,或者仅仅是无法访问的节点? 谢谢
答案 0 :(得分:0)
摘自文档:
碎片协调器状态
ShardCoordinator中的分片位置状态是持久(持久)的,具有分布式数据或持久性,可以幸免于故障。从集群中删除(通过故障)崩溃或无法访问的协调器节点后,新的ShardCoordinator单例actor将接管并恢复状态。在这种故障期间,具有已知位置的分片仍然可用,而用于新(未知)分片的消息将被缓冲,直到新的ShardCoordinator可用为止。
在这种情况下,我们拥有“在这样的故障时期内,具有已知位置的碎片 仍然可用”,因此,当mvn clean install
为Shard Coordinator
时,整个群集将无法正常工作