Общие сведения об обновлении состояния кластера

Я читаю документацию gossip akka cluster и до сих пор есть одно маленькое недоразумение о сплетнях.

Как сказано в этом ответе, два узла сплетничают о значение, а затем, кто видел это значение. Но это связано с некоторой проблемой конвергенции. Вот как я это вижу:

S — видимый набор.

топология кластера

Проблема в том, что в какой-то момент только узел 4 знает, что произошла конвергенция. узел 1, 2 и 3 по-прежнему считают, что это не так. Мне интересно, как узел 4 должен справиться с конвергенцией?

Следует ли инициировать новый раунд слухов о том, что произошло сближение? Или как другие узлы могут узнать об этом?


person user3663882    schedule 12.09.2016    source источник


Ответы (1)


Узлы 1-3 по-прежнему будут сплетничать (ну, 3, вероятно, уже знает о конвергенции, потому что знает, что 4 имеет ценность). Продолжая сплетничать, они будут обмениваться заметками о том, кто видел ценность.

Узел 4 (и на самом деле 3) и все последующие узлы, знающие о конвергенции, продолжают сплетничать, но без случайного взвешивания, упомянутого в другом вашем вопросе. В разделе протокола вашего связанного документа говорится:

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

person Michael Deardeuff    schedule 12.09.2016
comment
Итак, суть в том, что сплетни всегда имеют место. Если узел наблюдает за текущим состоянием как сходящимся, он отправляет небольшие сообщения о состоянии. Как только узел обнаружил несовпадение, он начинает отправлять обычные сообщения сплетен, пока снова не обнаружит сходимость. Это правильно? - person user3663882; 13.09.2016