0

我正在使用 Akka Cluster 2.4.8 开发一个项目。

有没有办法使用 AkkCluster 检测崩溃的节点(如computer failurekill -9等)?

我目前有一个 3 节点环境,使用static-quorum裂脑解决策略。

akka.cluster.split-brain-resolver {
    active-strategy = static-quorum
    stable-after = 5s

    static-quorum {
        quorum-size = 2
        role = ""
    } 

我希望在杀死一个实例时,剩余的集群成员会将其标记为DOWN. 但是,它仍然存在UNREACHABLE(见下文)。有没有办法做到这一点?

clusterStatus": {
    "members": [
        {
            "uniqueAddress": {
                "address": {
                    "protocol": "akka.tcp",
                    "system": "test-actor-system",
                    "host": "test-out-00",
                    "port": 2552
                },
                "uid": 1998600863
            },
            "upNumber": 1,
            "status": "Up",
            "roles": []
        },
        {
            "uniqueAddress": {
                "address": {
                    "protocol": "akka.tcp",
                    "system": "test-actor-system",
                    "host": "test-out-01",
                    "port": 2552
                },
                "uid": 1371217592
            },
            "upNumber": 3,
            "status": "Up",
            "roles": []
        },
        {
            "uniqueAddress": {
                "address": {
                    "protocol": "akka.tcp",
                    "system": "test-actor-system",
                    "host": "test-out-02",
                    "port": 2552
                },
                "uid": -796176254
            },
            "upNumber": 2,
            "status": "Up",
            "roles": []
        }
    ],
    "unreachable": [
        {
            "uniqueAddress": {
                "address": {
                    "protocol": "akka.tcp",
                    "system": "test-actor-system",
                    "host": "test-out-01",
                    "port": 2552
                },
                "uid": 1371217592
            },
            "upNumber": 3,
            "status": "Up",
            "roles": []
        }
    ]
4

2 回答 2

1

裂脑解析器是 Akka 的一项商业功能,您需要订阅 Lightbend。

笔记

这是 Typesafe 反应式平台的一项功能,专供 Typesafe Project Success Subscription 客户使用。

要使用 Split Brain Resolver 功能,您必须安装 Typesafe Reactive Platform。

如果您不是 Reactive Platform 订阅者,您的脑裂配置可能会被完全忽略。

完整文档位于http://doc.akka.io/docs/akka/rp-15v09p02/scala/split-brain-resolver.html

于 2016-12-22T14:57:40.293 回答
1

老实说,我没有使用 Akka 2.4+。我已经用 akka 2.3.12 开始了我的项目,我仍然在使用它。当时akka没有提供split-brain插件解决方案,唯一的建议是设置:

# put to off in order to not have split brain
auto-down-unreachable-after = off

这意味着,为了避免脑裂,您必须手动删除 UNREACHABLE 节点,并在 2.3.12 中返回 akka-microkernel(后来被弃用http://doc.akka.io/docs/akka/2.4.1 /project/migration-guide-2.3.x-2.4.x.html#Microkernel_is_Deprecated)使您可以向集群发出命令以将有问题的节点标记为 DOWN

bin/akka-cluster localhost 9999 down akka.tcp://MySystem@darkstar:2552

因此,需要一些用户需要的操作来管理裂脑并将节点从集群中取出,这可能与您的(Akka Cluster 2.4.8)版本相同。

于 2016-12-21T21:47:44.583 回答