2016-12-21 10 views
0

Я работаю над проектом с использованием Akka Cluster 2.4.8.Обнаружение убитых узлов кластером Akka

Есть ли способ обнаружить разбитые узлы (как в computer failure, kill -9 и т. Д.) С помощью AkkCluster?

У меня в настоящее время есть 3-узловая среда, использующая стратегию разрешения раздвоения мозга .

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": [] 
     } 
    ] 
+0

У вас есть подписка Lightbend Реактивная Platform (извините, может быть глупый вопрос, но стоит спросить)? –

+0

@svezfaz Не глупый вопрос, но я этого не делаю. – Tom

ответ

1

Разделительный мозговой резольвер является коммерческой функцией Akka, для которой вам необходима подписка Lightbend.

Примечание

Это особенность Реактивных платформ типизированных, который доступен исключительно для подписки клиентов типизированного успеха проекта.

Чтобы использовать функцию Split Brain Resolver, вы должны установить Typeafe Reactive Platform.

Скорее всего, если вы не являетесь подписчиком реактивной платформы, ваши конфигурации с разным мозгом просто игнорируются.

Полный документы на http://doc.akka.io/docs/akka/rp-15v09p02/scala/split-brain-resolver.html

+0

О, это хорошо знаю. Думаю, мне придется это сделать сам. спасибо – Tom

1

Чтобы быть честным, я не использую Akka 2.4+. Я начал свой проект с akka 2.3.12, и я все еще использую его. В то время не было никакого решения плагина расщепленного мозга обеспечивается Akka, единственный совет, который должен был установить:

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

Это означало, для того, чтобы избежать раскола мозга, вы должны были вручную Вытащите UNREACHABLE узлов и обратно 2.3.12 Акка-микроядро (позже, что осуждались 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://[email protected]:2552 

так немного пользователя необходимых действий для управления сплит-мозг и вывести узел из кластера, это может быть тот же случай с вашей версией (Akka Cluster 2.4.8).