Как обеспечить надежность брокера ActiveMQ?

Правильно ли я понимаю, что лучший способ обеспечить надежность очереди - это сеть брокеров master-slave (например, master-slave с помощью ZooKeeper)? В настройках отказоустойчивости потребителей и производителей мы устанавливаем адреса мастеров, и когда один из мастеров уходит в автономный режим, другие узлы master-slave сети брокеров получают мессенджер этого мастера от его подчиненных, и мы не теряем сообщения. Когда сломанный мастер подключается к сети, он получает новых потребителей и производителей и получает некоторые сообщения. Я прав?


person Hayate    schedule 23.10.2015    source источник


Ответы (1)


Есть два способа обеспечить высокую доступность с помощью ActiveMQ.

  1. Настройка Master/Slave с использованием общего хранилища. Для KahaDB (хранилище по умолчанию) это будет где-то общий диск. Файловый ресурс NFS/Windows или аналогичный. Существует множество способов создания надежных общих дисков. САН и не только.

  2. Реплицированный ведущий/ведомый. Это будет LevelDB с Zookeeper. Если вы не можете получить высокопроизводительный надежный общий диск, это будет лучшим вариантом.

Вы правы, клиент должен ввести адрес аварийного переключения при подключении.

person Petter Nordlander    schedule 24.10.2015
comment
Когда у нас есть master на 192.168.0.100 и slaves на, например, 192.168.0.101, 192.168.0.102, 192.168.0.103, мы устанавливаем отказоустойчивость 192.168.0.100,192.168.0.101,192.168.0.102,192.168.0.103 И если мастер выйдет из строя, ZooKeeper проголосует за нового мастера, это может быть 192.168.0.103. И как производители и потребители узнают, кто новый хозяин? Они просто пробуют все отказоустойчивые ips до успешного соединения? - person Hayate; 24.10.2015
comment
да, отказоустойчивый протокол работает именно так. Есть несколько вариантов его настройки, но клиент просто пробует их все, пока соединение не будет установлено. - person Petter Nordlander; 24.10.2015