【问题标题】:Unreachable nodes in Akka Cluster ShardingAkka Cluster Sharding 中无法访问的节点
【发布时间】:2018-09-06 04:14:00
【问题描述】:

我正在研究Akka Cluster Sharding,在阅读了Akka文档和互联网上的一些主题后,我认为当集群有一个无法访问的节点时,只有与该节点上的分片的通信被中断。这意味着消息被告知其上的分片将被缓冲,发送者将收到超时响应,并且消息被告知其他可用节点上的分片将正常发送和接收。 但是当我尝试实现一个有 4 个节点的集群,然后停止一个节点的服务,通过 Akka HTTP 管理检查并确认它被设置为不可访问时,我测试了从可用节点中的参与者向其他可用节点中的参与者发送消息节点并收到超时响应。 那么,任何人都可以帮助我确认集群何时有无法访问的节点,整个分片系统将无法正常工作,或者只是无法访问的节点? 谢谢

【问题讨论】:

    标签: sharding akka-cluster


    【解决方案1】:

    来自文档:

    分片协调器状态

    ShardCoordinator 中的分片位置状态是持久的(持久的),具有分布式数据或持久性以在故障中存活。当从集群中删除(通过关闭)崩溃或无法访问的协调器节点时,新的 ShardCoordinator 单例参与者将接管并恢复状态。在这样的故障期间,位置已知的分片仍然可用,而新(未知)分片的消息会被缓冲,直到新的 ShardCoordinator 可用。

    在此我们有“在这样的故障期间,位置已知的分片仍然可用”,因此当Shard Coordinatorunreachable 时,整个集群无法正常工作。

    供参考:Shard Coordinator State in doc.akka.io

    【讨论】:

    • 感谢您的回答,阅读后我再次尝试并知道为什么我之前总是收到超时响应,这导致我为仅 4 个节点定义了太多分片。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多