-
Apache ActiveMQ Artemis — это проект с открытым исходным кодом для
создания кластерной системы обмена сообщениями.
-
Идея о брокерах в Artemis MQ сделала шаг вперед. Над брокерами теперь есть еще одна
надстройка, которая называется кластер.
Кластер - это эдакая связка брокеров вместе. Основная его задача заключается в имитации работы
брокера, несмотря на том, что внутри него может быть связка из 10 брокеров.
-
Также такая архитектура имеет приятную особенность для обеспечения отказоустойчивости.
Допустим обычная проблема: на сервер с одним из брокеров пролили кофе и оно вышло из строя.
Кластер это видит, и начинает перекидывать все подключения на оставшиеся "живые" брокера, не трогая "мертвый".
Также клиент, который был подключен к умершему брокеру, поймет, что потерял подключение, и пересоздаст его на новых живых брокерах.
-
Еще кластер имеет балансировку, которая является незаменимой вещью в высоконагруженных приложениях.
Как это работает? При попытке клиента подключиться к кластеру, кластер исходя из текущих настроек выбирает один из брокеров.
Он может выбирать случайно, может выбирать с помощью упорядоченного набора и так далее. Можно в принципе самому написать нужную
балансировку проект то с открытым кодом.
-
Возможно, у вас возник вопрос "а зачем?", а ответ прост - масштабирование.
Включить 10 брокеров сообщений в разы дешевле чем увеличить мощность одного в 10 раз
(дешевле включить 10 средних по мощности вычислительных систем, чем 1 очень мощную)
-
Этот механизм является главной особенностью Artemis MQ и вокруг него крутится очень многое.
К слову у предыдущего коллеги IBM MQ, есть схожая технология, но, во-первых, она достаточно
костыльная (была сделана позже, да и в принципе является отдельным приложением), во-вторых, также
стоит отдельный вагон денег.
-
Ну и как большинство продуктов компании Apache, Artemis MQ это пластилин из которого, при желании,
можно вылепить все что душе угодно.