Состояние кластера Акка Слабо - PullRequest
0 голосов
/ 09 сентября 2018

Я прочитал документ Akka и нашел это

Как уже упоминалось ранее, если узел недоступен, то конвергенция сплетен невозможна, и поэтому любые действия лидера также невозможны. Включив akka.cluster.allow-weakly-up-members (включен по умолчанию), можно разрешить создание новых присоединяющихся узлов, пока конвергенция еще не достигнута. Эти присоединяющиеся узлы будут называться WeaklyUp. Как только сплетни будут достигнуты, лидер переместит членов WeaklyUp в Up.

Но это не объясняет, какова цель статуса WeaklyUp. Итак, пожалуйста, помогите мне объяснить, в чем разница между WeaklyUp и Joining?

1 Ответ

0 голосов
/ 26 мая 2019

Значение WeaklyUp может зависеть от конкретного приложения. (В конце концов, как вы указали, настраивается, разрешено ли даже WeaklyUp.) Но в целом WeaklyUp - это ситуация, которая указывает на то, что новый узел синхронизирован с лидером (то есть лидер видит узел, а узел имеет информацию от лидера), но (поскольку конвергенция не может быть достигнута) все узлы еще не видели новый узел.

То, что вы делаете с таким узлом, зависит от вас. Однако узел в этом состоянии может быть полезен в некоторых отношениях. Например, узел может, вероятно, получать входящий трафик из внешнего мира. Новый узел знает состояние кластера, поэтому он будет знать, как обрабатывать все входящие запросы, даже запросы, требующие маршрутизации с учетом кластера.

Akka Bootstrap (по умолчанию), например, сообщит узлу WeaklyUp как «готовый» к Kubernetes. Тем самым делая его правомочным на получение входящего трафика. Так что это канонический ответ на ваш вопрос: узел WeaklyUp может получать и обрабатывать запросы и направлять сообщения на другие узлы в кластере. Конечно, он также может получать ответы, так как удаленное взаимодействие работает как обычно. Кстати, другой пример, поскольку мы говорим о удаленном взаимодействии, это то, что члены WeaklyUp также имеют право на маршрутизацию с учетом кластера. Поскольку, если маршрутизатор знает о новом узле, тот факт, что какой-то другой узел не знает об этом узле, является спорным, поскольку его собственные решения о маршрутизации идут.

Однако, как показывают документы, существует множество ограничений для участников WeaklyUp, поскольку не все участники видели новый узел, и поэтому нельзя позволять делать что-либо, что будет зависеть от конвергенции: например, решения о кворуме или разделение. .

...