ConsistentHashingGroup - обнаружение сбойного узла в кластере - PullRequest
0 голосов
/ 24 октября 2018

Я использую ConsistentHashingGroup и хотел бы получить уведомление, когда узел Akka в кластере, у которого есть маршруты для группы, вышел из строя.

Есть ли способ сделать это без подписки на события кластера?Каков наилучший способ определить, какие маршруты расположены в аварийном узле?Я бы хотел восстановить данные для этих маршрутов из постоянного хранилища.

1 Ответ

0 голосов
/ 08 ноября 2018

Это потребует прослушивания событий кластера.При согласованном хешировании, когда топология узлов изменяется (узлы удаляются или добавляются), использование хеширования для маршрутизации будет означать, что сообщения могут начать отправляться другому субъекту, чем он был направлен ранее.Чтобы узнать, какие хэши были переданы конкретному субъекту, вам, вероятно, придется отчитываться от субъекта за каждое сообщение.Если состояние связано с определенными хешами, это будет проблематично, потому что как вы можете гарантировать, что вы восстановили правильное состояние до того, как сообщение было направлено субъекту.

Возможно, вы захотите взглянуть на Akka Cluster Sharding , который выполняет маршрутизацию на основе идентификатора и обеспечивает наличие только одного действующего субъекта для данного идентификатора, перебалансировку при изменении кластера и т. Д. Очень полезно для постоянного состояния, связанного с конкретным получателем.

...