У меня кластер Pulsar из 3 машин. У каждого из них работает брокер Pulsar, Zookeeper и Bookkeeper. В моем broker.conf есть следующее:
managedLedgerDefaultEnsembleSize=2
managedLedgerDefaultWriteQuorum=2
managedLedgerDefaultAckQuorum=2
Значит, я смогу на время отключить любую из 3 машин без перебоев в обслуживании, верно? И когда я подниму его, получит ли он копии всего пропущенного сообщения? Я просто хочу убедиться, что правильно понимаю вещи, прежде чем делать это с нашим живым кластером. Я не хочу очень плохих выходных!
Извините, что пропустил настройку значения кворума (EnsembleSize, writeQuorum, AckQuorum) (2,2,2) в предыдущем ответе. Если только с 3 букмекерскими конторами, он не будет поддерживать одну машину при кворуме (3,3,2).
Но даже с кворумом (2,2,2) перед отключением одной машины обязательно отключите автоматическое восстановление бухгалтера с помощью команды bin/bookkeeper shell autorecovery -disable
, и включите его, когда машина вернется, используя bin/bookkeeper shell autorecovery -enable
.
Если не задано, бухгалтер выполнит автоматическое восстановление, когда машина отключена, потому что бухгалтер должен был иметь 3 копии данных, но сейчас у него есть только 2 копии. А поскольку найти третью доступную машину для размещения восстановленной копии не удастся, автоматическое восстановление не удастся.
Для получения дополнительной информации об автоматическом восстановлении Bookeeper вы можете проверить эта ссылка. Вот часть содержания:
Вы можете отключить автоматическое восстановление в любой момент, например, во время обслуживания. Отключение автосохранения гарантирует, что данные букмекеров не будут повторно реплицироваться без необходимости, если букмекер отключен только на короткий период времени, например, когда букмекер обновляется или конфигурация изменяется.