web-dev-qa-db-fra.com

Apache Kafka est-il une autre API pour JMS?

N'est pas Apache Kafka une autre implémentation de JMS?

J'utilise JMS+AMQ dans mon application et migration vers Apache Kafka. Dois-je modifier tous les codes JMS?

18
Sam

Non, Kafka est différent des systèmes JMS tels qu'ActiveMQ. Voir ActiveMQ vs Apollo vs Kafka

Kafka a moins de fonctionnalités qu'ActiveMQ, car l'accent a été mis sur les performances. Donc avant de migrer, vérifiez que les fonctionnalités que vous utilisez dans AMQ sont dans Kafka.

Cependant, il existe une suggestion ouverte pour un pont entre JMS et Kafka, pour permettre exactement ce dont vous avez besoin. Peut-être que les liens fournis peuvent vous aider https://issues.Apache.org/jira/browse/KAFKA-1995

14
Pixou

Non, Kafka utilise son propre protocole et ses clients non standard.

Cependant, il existe un tiers Client JMS pour Kafka de Confluent .

3
Kunda

En fait, les deux ne sont pas identiques. Et avec un peu plus de temps à voir les deux coexister - et à écouter les problèmes et les points positifs de ceux qui se déploient chacun sur le terrain - il y a un peu plus à dire sur chacun.

Tout d'abord, [~ # ~] jms [~ # ~] prend en charge les deux point à point messagerie (où les messages sont envoyés à des consommateurs uniques; les consommateurs eux-mêmes conservent leurs files d'attente de messages) et publication et abonnement ( pub/sub) modèle (où les messages sont écrits sur un seul sujet, et les consommateurs, indépendamment, décident quels messages utiliser).

Dans une architecture de messagerie point à point, les producteurs de messages et les consommateurs se connaissent, contrairement à un modèle de pub/sous-type. Apache Kafka se concentre sur un modèle pub/sub , en conservant un journal séparé/sujet à partir duquel les consommateurs lisent des décalages. Kafka est également conçu pour le cloud , avec un débit élevé une considération fondamentale.

Beaucoup dans notre communauté et lors de rencontres lèvent la main de frustration face aux MOM (middlewares orientés message) comme JMS et passent à Kafka, pour, ce qui se résume à une raison: l'évolutivité. Ils soutiennent que Kafka est mieux adapté à l'échelle que les autres MOM parce que Kafka maintient un journal de rubrique partitionné. Ce faisant, Kafka peut fractionner le flux de messages vers des groupes de consommateurs par partition et transmettre les messages par lots.

Ce concept permet également à Kafka d'avoir un contrôle plus granulaire sur les ACL (contrôle d'accès) aux Kafka consommateurs, bien qu'il y ait quelques problèmes là-bas, auxquels Apache Pulsar résout.

Enfin, sur Kafka, puisque le client/consommateur décide des messages à consommer (par décalage dans le sujet), cela supprime une partie de la complexité côté producteur des règles de routage intégrées dans les MOM comme JMS.

Il y a plus de différences que cela, mais il s'agit d'une distillation de certaines de celles qui continuent à arriver! J'espère que cela t'aides.

2
John Hammink