Недоступные узлы в Akka Cluster Sharding - PullRequest
0 голосов
/ 06 сентября 2018

Я изучаю Akka Cluster Sharding, после прочтения документов Akka и некоторых тем в Интернете, я подумал, что, когда кластер имеет недоступный узел, прерывается только связь с шардами на этом узле. Это означает, что сообщения, переданные шардам, будут буферизованы, а отправители получат ответ тайм-аута, а сообщения, переданные шардам на других доступных узлах, будут отправлены и получены нормально. Но когда я попытался реализовать кластер с 4 узлами, а затем остановил обслуживание одного узла, проверил через Akka HTTP Management и подтвердил, что он был недоступен, то я протестировал отправку сообщений от субъекта в доступном узле субъекту в другом доступном узел и получил ответ Timeout. Итак, кто-нибудь может помочь мне подтвердить, когда кластер имеет недоступный узел, вся система шардинга не будет работать нормально, или просто недоступный узел? Спасибо

1 Ответ

0 голосов
/ 06 сентября 2018

Из документации:

Состояние координатора шарда

Состояние местоположений осколков в ShardCoordinator является постоянным (долговечным) с распределенными данными или постоянством для выживания при сбоях. Когда удаленный или недоступный узел-координатор был удален (через вниз) из кластера, новый одноэлементный актер ShardCoordinator вступит во владение, и состояние будет восстановлено. В течение такого периода сбоя все еще доступны сегменты с известным местоположением, а сообщения для новых (неизвестных) сегментов буферизуются до тех пор, пока новый ShardCoordinator не станет доступен.

В этом случае мы имеем «В течение такого периода сбоя осколки с известным местоположением все еще доступны», поэтому, когда Shard Coordinator равен unreachable, весь кластер не может работать должным образом.

Для справки: Состояние координатора шарда в doc.akka.io

...