В частности, ActiveMQ против Аполлона против Кафки


У меня нет никакого предыдущего опыта работы с *MQs, и я хочу построить знания о JMS и очередях сообщений в целом. Таким образом, я задаюсь вопросом, должен ли я начать с ActiveMQ или просто "игнорировать" его вообще и начать с обучения себя Apollo. Является ли Apollo такой же полнофункциональной, как ActiveMQ? Реализует ли он JMS 2.0 (я вижу, что ActiveMQ застрял с 1.1)? Будет ли мне не хватать чего-то действительно важного?

кроме того, как Кафка сравнивается с этими двумя решениями?

3 58

3 ответа:

Apache ActiveMQ-отличная рабочая лошадка, полная функций и приятных вещей. Это не самый быстрый MQ программное обеспечение вокруг, но достаточно быстро для большинства случаев использования. Среди особенностей-гибкая кластеризация, отказоустойчивость, интеграция с различными серверами приложений, безопасность и т. д.

Apache Apollo-это попытка написать новое ядро для ActiveMQ, чтобы справиться с большим количеством клиентов и сообщений. Он не имеет всех приятных и удобных функций ActiveMQ, но масштабируется намного лучше. Апаш Apollo-это очень быстрая реализация MQ, когда вы даете ему большой многоядерный сервер и тысячи параллельных соединений. Он имеет приятный, простой пользовательский интерфейс, но не является решением "один размер подходит всем".

кажется, что есть попытка продолжается до слияния ряд особенностей, в частности, ActiveMQ с HornetQ под именем Артемиды в частности, ActiveMQ. HornetQ имеет поддержку JMS2.0, поэтому мое скромное предположение заключается в том, что он, вероятно, появится в ActiveMQ 6.x.

Джира, Github

Кафка-это другой зверь. Это очень простой брокер сообщений, предназначенный для быстрого масштабирования постоянной подписки на публикацию (темы) на нескольких серверах. Для небольших и средних развертываний Kafka, вероятно, не самый лучший вариант. Он также имеет свой способ сделать что-то для достижения высокой пропускной способности, поэтому вам нужно много торговать с точки зрения гибкости, чтобы получить высокую распределенную пропускную способность. Если вы новичок в область MQ и брокеров, я думаю, Кафка перебор. С другой стороны - если у вас есть приличный размер кластера серверов и интересно, как протолкнуть через него как можно больше сообщений-дайте Кафке спину!

Это более старый вопрос, но я дам более современный ответ здесь.

  • проект "Аполлон" неофициально мертв, и они предполагают, что Артемида-это новая горячность. (ссылке) (казалось бы) застопорившееся развитие Аполлона не дает мне уверенности в будущем Артемиды.
  • мой опыт похож на ответ Петтера в том, что ActiveMQ является многофункциональным и способным. Тем не менее, кажется, что каждый релиз исправляет случайные сбои и утечки памяти и это не внушает доверия. Он стабилен для моего проекта (который использует кластеризацию), но мы видели странное поведение и сбои в брокере за последние десять или около того релизов (в настоящее время используется 5.14.3)
  • Я не использовал RabbitMQ (мой текущий проект привязан к ActiveMQ), но я буду пробовать его на следующем проекте, который нуждается в шине обмена сообщениями. Отсутствие кухонной раковины функций для поддержки, надеюсь, означает, что она более стабильна.

редактировать: 2.3.0 Релиз Apache Artemis произошел ~5 сентября 2017 года. Так что на данный момент это, похоже, прогрессирует. Но (ссылке) список изменений все еще кажется слишком страшным.

Я amde тест производительности ActiveMQ, Apollo, HornetQ в соответствии с непостоянным сценарием и постоянным сценарием, я думаю, что вам будет полезно выбрать, какой из них следует использовать, ссылка, как показано ниже: http://hiramchirino.com/jms-benchmark/ubuntu-2600k/index.html