Является ли Apache Kafka еще одним API для JMS?

Не Apache Kafka другая реализация JMS?

Я использую JMS+AMQ в своем приложении и перехожу к Apache Kafka. Мне нужно изменить все JMS коды?

Ответ 1

Нет, Kafka отличается от систем JMS, таких как ActiveMQ. см. ActiveMQ против Аполлона против Кафки

Кафка имеет меньше возможностей, чем ActiveMQ, так как упор был сделан на производительность. Поэтому перед миграцией убедитесь, что функции, которые вы используете в AMQ, есть в Kafka.

Тем не менее, есть открытое предложение о мосте между JMS и Kafka, чтобы позволить именно то, что вам нужно. Возможно, приведенные ссылки помогут вам https://issues.apache.org/jira/browse/KAFKA-1995

Ответ 2

Нет, Kafka использует собственный нестандартный протокол и клиентов.

Однако есть сторонний JMS-клиент для Kafka из Confluent.

Ответ 3

На самом деле, два не то же самое. И, потратив немного больше времени на то, чтобы увидеть, как они сосуществуют, - и выслушать проблемы и радости от тех, кто развертывает их на местах, - можно сказать немного больше о каждом из них.

Во-первых, JMS поддерживает как обмен сообщениями " точка-точка" (когда сообщения отправляются отдельным потребителям; сами потребители поддерживают свои очереди сообщений), так и модель публикации и подписки (pub/sub) (когда сообщения пишутся в одной теме). и потребители самостоятельно решают, какие сообщения потреблять).

В архитектуре обмена сообщениями "точка-точка" производители и потребители сообщений знают друг друга, а в модели паба/субмашины они не знают. Apache Kafka фокусируется на модели pub/sub, поддерживая отдельный журнал/тему, из которой потребители читают со смещений. Kafka также разработана для облачных вычислений, с высокой пропускной способностью, что является ключевым фактором.

Многие в нашем сообществе и на встречах разочарованно вскидывают руки на MOM (промежуточное ПО, ориентированное на сообщения), например, JMS, и переключаются на Kafka, что сводится к одной причине: масштабируемости. Они утверждают, что Kafka лучше подходит для масштабирования, чем другие MOM, потому что Kafka поддерживает разделенный журнал тем. При этом Kafka может разделять поток сообщений по группам потребителей по группам и передавать сообщения в пакетном режиме.

Эта концепция также позволяет Kafka иметь более детальный контроль над ACL (контроль доступа) для потребителей Kafka, хотя есть некоторые проблемы, которые решает Apache Pulsar.

Наконец, на Kafka, поскольку клиент/потребитель решает, какие сообщения потреблять (по смещению в теме), это устраняет некоторую сложность правил маршрутизации на стороне производителя, встроенных в MOM, такие как JMS.

Там больше различий, чем это, но это дистилляция некоторых из тех, которые продолжают появляться! Надеюсь это поможет.