Обнаружение убитых узлов с помощью кластера Akka
Я работаю над проектом с использованием Akka Cluster 2.4.8.
Есть ли способ обнаружить сбойные узлы (как в computer failure
, kill -9
и т.д.) с AkkCluster?
В настоящее время у меня есть среда с 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": []
}
]
2 ответа
Разделитель мозга - коммерческая функция Akka, для которой вам нужна подписка на Lightbend.
Заметка
Это особенность реактивной платформы Typesafe, которая доступна исключительно для подписчиков на успешную подписку на проект Typesafe.
Чтобы использовать функцию Split Brain Resolver, вы должны установить Typesafe Reactive Platform.
Скорее всего, если вы не являетесь подписчиком Reactive Platform, ваши разделенные мозги просто игнорируются.
Полные документы на http://doc.akka.io/docs/akka/rp-15v09p02/scala/split-brain-resolver.html
Если честно, я не использую 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 к микроядру akka (которое позже было признано устаревшим http://doc.akka.io/docs/akka/2.4.1/project/migration-guide-2.3.x-2.4.x.html) дала вам возможность дать команду кластеру, чтобы пометить узел с проблемами как DOWN
bin/akka-cluster localhost 9999 down akka.tcp://MySystem@darkstar:2552
Таким образом, небольшое количество действий, необходимых пользователю для управления разделенным мозгом и выведения узла из кластера, может быть таким же, как и в вашей версии (Akka Cluster 2.4.8).