ActiveMQ - это платформа для обмена сообщения и интеграции. В производственной среде приложения должны обеспечивать доступность на уровне 24/7 без потери сообщений. Во многих организация приложения развёртываются глобально, охватывая множество офисов находящихся в разных географических местах. ActiveMQ может использоваться как надежный глобальный информационный "трубопровод". Для передачи сообщений из одного географического места в другое используется метод store and forward (процесс записи сообщения или части сообщения с целью последующей передачи по одному или нескольким указанным адресам).
- сетевые ошибки;
- аппаратные ошибки;
- программные ошибки;
- отключение электроэнергии.
Решение: нужно запустить множество ActiveMQ брокеров на разных машинах, для того чтобы в случае отказа одного из брокеров, другой мог его сменить. Такая конфигурация называется master/slave. Один из брокеров берет на себя роль главного или master, а один или несколько slave брокеров ждут когда master откажет, чтобы один из slave брокеров стал новым главным, т.е. master. Клиенты ActiveMQ на Java и C++ обеспечивают встроенное аварийное переключение трансфера, так что они автоматически переключатся с отказавшего мастера на нового мастера.
Есть две master/slave конфигурации:
- shared nothing (без разделения ресурсов) - каждый ActiveMQ брокер имеет свое собственное хранилище сообщений;
- shared storage (совместно используемое запоминающее устройство) - каждый ActiveMQ брокер может подключаться к shared storage (relational database или shared file system), но только один брокер может быть активным в каждый момент времени.