Моя задача состоит в том, чтобы выполнить следующее с помощью serf: если один узел выходит из строя, другой выключает первый узел и переносит его IP-адреса на новый работающий узел.Теперь, если я выключаю первый узел, второй работает (третий узел ничего не делает, он только для кворума и не имеет события left.sh).Если я выключу второй узел, первый будет в порядке.НО, если я выключаю третий узел, то и первый, и два отключаются / выключаются (потому что они запускают exit.sh).Мой вопрос состоит в том, как избежать этого сценария с разделением мозгов, так что даже если третий узел не работает, файл exit.sh не будет выполняться как на первом, так и на втором сервере?
Это мой файл serf.conf на первоми второй узел:
{
"node_name": "serf-testnode",
"bind": "X.X.X.X",
"advertise": "X.X.X.X",
"rejoin_after_leave": true,
"skip_leave_on_interrupt": true,
"leave_on_terminate" : false,
"tags": {
"datacenter": "XXXX"
},
"event_handlers": [
"member-leave=/etc/serf/bin/leave.sh",
"member-failed=/etc/serf/bin/leave.sh",
"member-join=/etc/serf/bin/join.sh"
]
}
Файл serf.conf на узле 3 не покинул .sh (потому что я хочу только кластер из двух узлов, но затянул третий узел, чтобы избежать разделения мозга, но он не работал).В консуле я думаю, что это делается с помощью опции начальной загрузки, но в крепостной недоступенВ кардиостимуляторе есть вариант кворума, но в крепостном я не нашел ничего связанного.Является ли serf подходящей технологией для этой задачи?Заранее спасибо!