Yahoo a développé Pulsar, un système de messagerie pub-sub, et l'a ouvert. C'est maintenant le projet incubateur d'Apache. Depuis Kafka est également utilisé dans le même but. Vous voulez connaître les points principaux plus et moins de Kafka sur Pulsar.
J'ai joué un peu avec les deux ces derniers temps, et voici ce que j'ai rassemblé.
Neutre:
Pro pulsar:
Pro Kafka:
Lisez aussi:
Apache Kafka est plus mature (il existe depuis plus longtemps) et possède des API de niveau supérieur (c'est-à-dire KStreams). Sa maturité limite toutefois la fluidité et la flexibilité, c’est-à-dire environ 500 PR ouverts sur le github.
Apache Pulsar a étudié en profondeur les décisions de Apache Kafka en matière de conception et a intégré une conception améliorée et un ensemble de fonctionnalités intéressantes, à savoir l’idée de namespacing sujets, et permettre d'appliquer des ACL ou des quotas au niveau de l'espace de nommage semble une telle bonne idée de donner une meilleure idée Prise en charge multi-location . Quelques autres fonctionnalités intéressantes de Pulsar sont la géo-réplication , ainsi que l'unification de la mise en file d'attente et du streaming
Nous avions besoin d'une plate-forme de streaming avec des sujets persistants, une latence raisonnable et un débit élevé. Récemment, nous avons évalué si nous devrions aller avec Kafka ou Pulsar et contrairement à @nha, nous sommes maintenant en faveur d'Apache Kafka. Voici nos conclusions:
Pulsar - Pros
Pulsar - Cons
Kafka - Pros
Kafka - Cons
Pulsar, le dernier projet de la Fondation Apache Software à atteindre le plus haut niveau, tire beaucoup de points en comparaison avec Kafka, un autre projet d'ASF.
Pulsar est une plate-forme de messagerie hautement évolutive et à faible temps de latence fonctionnant sur du matériel standard. Il fournit une sémantique de sous-public et de file d'attente simple sur des sujets, une structure de calcul légère, une gestion automatique du curseur pour les abonnés et une réplication entre centres de données.
Dans le même temps, le rapport Apache 2018 Kafka), qui interrogeait plus de 600 utilisateurs, a répertorié les pipelines de données et transmis les deux principales utilisations de la technologie. Il a également été utilisé avec la montée en puissance des architectures de microservices.
"Les cas d'utilisation des deux systèmes se chevauchent beaucoup, mais les conceptions d'origine étaient très différentes", a déclaré Matteo Merli, l'un de ses créateurs, qui a depuis créé Streamlio, une startup proposant une plate-forme de données rapides.
Yahoo a créé Pulsar en tant que système multi-locataire unique afin de résoudre ses problèmes liés aux systèmes de messagerie multiples et aux équipes multiples les déployant.
Il a été lancé en open source en 2016 et est entré dans l’incubateur ASF en juin 2017. Pendant environ quatre ans, il a été utilisé dans les applications Yahoo Mail, Finance, Sports, Gemini Ads et Sherpa, le service distribué de valeur clé de Yahoo.
Dans un article de blog, le co-fondateur Sijie Guo a résumé Pulsar contre Kafka):
“Apache Pulsar combine un flux de données haute performance (suivi par Apache Kafka)) et une mise en file d'attente traditionnelle flexible (suivie par RabbitMQ) dans un modèle de messagerie unifiée et une API. Pulsar vous offre un système unique pour la diffusion en continu et la mise en file d'attente. , avec les mêmes hautes performances, en utilisant une API unifiée. ”
Merli a déclaré: "Il y a des différences entre le streaming et la file d'attente; il y a beaucoup de cas d'utilisation où vous avez besoin de l'un ou de l'autre, mais la plupart des gens ont besoin des deux pour des cas d'utilisation différents. ”
Architecture à deux couches Une conception à deux couches est la clé de Pulsar, a déclaré Merli. Il existe une couche de courtiers sans état qui reçoit et remet des messages et une couche de persistance avec état, avec un ensemble de nœuds de stockage Apache BookKeeper appelés bookmakers qui fournissent un stockage durable à faible latence.
Pulsar a été construit sur l'idée de disposer de garanties de données solides, a déclaré Merli. Il était conçu pour la consommation partagée, alors que Kafka n'était pas le cas. Et Pulsar permet aux utilisateurs de configurer une période de conservation des messages même après que tous les abonnements les ont consommés.
Son architecture en couches et son stockage centré sur les segments offrent des avantages clés:
Vous pouvez mettre à l'échelle les courtiers ou la couche de stockage indépendamment. Les courtiers étant apatrides, un sujet peut être rapidement déplacé vers d'autres courtiers. Cela offre un moyen efficace d’équilibrer le trafic entre les courtiers. Peut avoir plusieurs consommateurs sur la même partition et vous pouvez en ajouter autant que vous le souhaitez. Etant donné qu'aucune donnée n'est stockée localement, cela évite de copier des données de partition lors de l'extension de capacité et ne nécessite aucun rééquilibrage. Lorsqu'une rubrique partitionnée est créée, Pulsar partitionne automatiquement les données de manière agnostique pour les consommateurs et les producteurs.
Le courtier envoie les données du message à plusieurs nœuds BookKeeper, qui les écrivent dans un journal à écriture anticipée et en conservent une copie en mémoire. Avant que le nœud envoie un accusé de réception, le journal est écrit de force dans un stockage stable, ce qui garantit sa conservation même en cas de coupure de courant. Les partitions de sujets peuvent évoluer jusqu'à la capacité totale de l'ensemble du cluster BookKeeper. Vous pouvez également agrandir un cluster en ajoutant simplement des nœuds.
Depuis que nous sommes entrés dans l’incubateur, l’accent a été mis sur la facilité de démarrage avec Pulsar.
La version 2.0 de Pulsar a été publiée en juin, et comprenait une fonctionnalité de traitement "native pour le flux" appelée Fonctions Pulsar, qui permet aux utilisateurs d’écrire des fonctions de traitement dans Java ou Python La version 2.2, qui comportera une interrogation SQL interactive, sera bientôt disponible.
Pulsar fournit plusieurs liaisons de langage et de protocole, notamment Java, C++, Python et WebSockets, ainsi qu'une API compatible Kafka.
Lectures supplémentaires: Apache Pulsar: Est-ce un tueur KAFKA?
Apache Pulsar: Est-ce un KAFKA Killer? Écrit par Bhagwan s. Soni
POURQUOI devrions-nous choisir Apache Pulsar plutôt que Kafka?
Apache Pulsar est une édition Enterprise de PubSub, initialement développée par Yahoo et désormais prise en charge par Apache Software Foundation. Apache Pulsar fonctionne sur les systèmes de production depuis plus de 3 ans et a prouvé sa stabilité.
Apache Pulsar couvre presque toutes les fonctionnalités que Kafka nous offre, peuvent porter différents noms. Pulsar possède de nombreuses fonctionnalités, mais je voudrais en souligner certaines qui nous aideront à nous différencier Kafka -
1} Apache Pulsar vous propose 3 types d’abonnement sur le sujet: A} Exclusif - Un seul consommateur consomme les données d’un sujet B} Partagé - Plusieurs consommateurs consomment les données d’un sujet C} Basculement - Plusieurs consommateurs, mais à un moment donné, un seul utilisateur utilisera les données.
2} Chaque espace de noms peut avoir un ou plusieurs sujets.
3} Prise en charge de la multi-organisation
4} Réplication de données sur plusieurs clusters
5} Prise en charge de la durabilité des messages contre la perte de données