web-dev-qa-db-fra.com

IBM MQ vs Apache Kafka

Je suis en train de concevoir une nouvelle architecture big data où mon client a comme courtier IBM MQ. Nous utilisons pour travailler avec Kafka dans les architectures Big Data, parce que je suppose que c'est plus rapide, fiable et plus fort que les alternatives, et parce que Storm et spark travail en streaming) plus facile avec Kafka.

Ma question est simple, c'est vrai? Ou pourrions-nous développer des solutions fiables en utilisant IBM MQ comme courtier dans notre architecture avec le même résultat qu'avec Kafka ?.

Y a-t-il de vraies raisons d'utiliser Kafka au lieu d'IBM MQ?

7
charles

Je pense que tout dépend. Apache Kafka et IBM MQ sont tous deux des systèmes de messagerie, mais leur approche est très différente.

S'il s'agissait simplement de choisir un système de messagerie spécifiquement à intégrer avec Storm ou Spark Streaming pour traiter des flux de messages, alors Kafka est plus facile. Mais pour un client utilisant déjà IBM MQ et non Kafka, la réponse peut ne pas être la même.

Je pense que vous pourriez tout simplement écrire un bec pour que Storm s'intègre à MQ, mais le bec JMS open-source ne fonctionnera pas avec MQ à cause des détails sur la façon dont il reconnaît les messages. Si les caractéristiques de performances d'un bec MQ pour Storm sont suffisantes, il devrait être tout à fait possible d'utiliser MQ pour votre scénario.

8
Andrew Schofield

Avantages de Kafka par rapport aux autres systèmes de messagerie traditionnels:

  1. Aucun concept de file d'attente dans Kafka c'est-à-dire, pas de modèle P2P
  2. Persistance du message
  3. Partitionnement des sujets
  4. Séquençage des messages
  5. Le message se lit
  6. L'équilibrage de charge
  7. Basculement automatique et haute disponibilité

Pour plus de détails:

MQ/JMS - Kafka différences

Apache Kafka est en plein essor, mais devriez-vous l'utiliser?

ne comparaison super rapide entre Kafka et Message Queues

7
Affy

J'entends cette question chaque semaine ... Alors qu'IBM MQ ou JMS en général est utilisé pour la messagerie traditionnelle, Apache Kafka est utilisé comme plateforme de streaming (messagerie + stockage distribué + traitement des données). Les deux sont conçus pour différents cas d'utilisation.

Vous pouvez utiliser Kafka pour la "messagerie traditionnelle", mais pas utiliser MQ pour les scénarios spécifiques à Kafka.

L'article Apache Kafka vs Enterprise Service Bus (ESB) —Friends, Enemies or Frenemies explique pourquoi Kafka n'est pas compétitif) mais complémentaire des solutions d'intégration et de messagerie (y compris IBM MQ) et comment les intégrer.

5
Kai Wähner

Je comprends que vous vous êtes retrouvé dans une situation avec destination fixe.
IBM MQ peut fournir une solution solide, fiable et robuste. Il a obtenu une solution interne d'équilibrage de charge (cluster) permettant de créer des architectures capables de gérer des charges de données. 10 ans avec MQ, j'envisagerais de l'utiliser.

0
alex