Брокер сообщений на Java, реализующий JMS и поддерживающий несколько протоколов (AMQP, MQTT, STOMP, OpenWire и др.) для асинхронного обмена сообщениями между распределёнными приложениями.
Обеспечивает очереди и pub/sub‑модели, долговременное хранение и повторную доставку сообщений, транзакции, кластеры и high availability.
Функциональные характеристики
Модели обмена и протоколы
- Поддержка очередей (point‑to‑point) и pub/sub через topics/addresses.
- Поддержка протоколов: OpenWire, STOMP, AMQP 1.0, MQTT, REST, WebSocket, плюс JMS для Java‑клиентов.
Сообщения и надёжность
- Типы доставки: транзиентные и персистентные сообщения, гарантированная доставка, повторная доставка при сбоях.
- Поддержка локальных и XA‑транзакций, отложенных и приоритетных сообщений, message groups, виртуальных и составных destinations.
Масштабирование и отказоустойчивость
- High availability: master‑slave, shared‑storage (KahaDB/JDBC), варианты с блокировкой на ФС или в БД, репликация с ZooKeeper.
- Горизонтальное масштабирование через Network of Brokers (store‑and‑forward, hub‑and‑spoke, peer‑to‑peer) для распределения нагрузки.
Клиенты, интеграция и управление
- Клиенты на многих языках: Java, C/C++, C#, Python, Ruby, PHP и др., плюс поддержка Enterprise Integration Patterns
- Tight‑интеграция со Spring (встраивание брокера, конфигурация через XML), JCA адаптеры для J2EE‑серверов, поддержка web‑стриминга (Ajax) и web‑сервисных стеков CXF/Axis.
Безопасность и наблюдаемость
- Аутентификация и авторизация через JAAS, списки разрешений на уровне destinations.
- Богатый JMX‑мониторинг, интеграция с Jolokia/HawtIO для веб‑консолей и дашбордов, метрики по очередям, потребителям, латентности и использованию ресурсов.