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