Безопасно ли удалить один узел из трехузлового кластера Apache Pulsar для обслуживания?

У меня есть кластер Pulsar из 3 машин. У каждого из них работает брокер Pulsar, Zookeeper и Bookkeeper. В моем broker.conf есть следующее:

managedLedgerDefaultEnsembleSize=2
managedLedgerDefaultWriteQuorum=2
managedLedgerDefaultAckQuorum=2

Значит, я могу на время отключить любую из трех машин без каких-либо перебоев в обслуживании, верно? И когда я подниму его, получит ли он копии всего пропущенного сообщения? Я просто хочу убедиться, что правильно понимаю вещи, прежде чем делать это с нашим живым кластером. Я не хочу, чтобы у меня были очень плохие выходные!

0
задан 1 February 2019 в 11:53
1 ответ

Извините за пропущенную настройку (EnsembleSize, writeQuorum, AckQuorum) значения кворума (2,2,2) в предыдущем ответе. Если только с 3 букмекерами, он не будет поддерживать одну машину при кворуме (3,3,2).

Но даже при кворуме (2,2,2) перед тем, как снять одну машину, убедитесь, что выключили авто-восстановление bookkeeper с помощью команды bin/bookkeeper shell autorecovery -disable, и включите его, когда машина вернется, с помощью bin/bookkeeper shell autorecovery -enable.

Если не выключить, бухгалтер выполнит авто-восстановление после того, как машина выключится, так как ожидалось, что у бухгалтера будет 3 копии данных, но теперь у него только 2 копии. А так как найти третью доступную машину для размещения восстановленной копии не удастся, то авто-восстановление будет неудачным.

Для получения более подробной информации об авто-восстановлении для бухгалтера вы можете посмотреть по этой ссылке. Вот часть содержимого:

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

1
ответ дан 4 December 2019 в 15:46

Теги

Похожие вопросы