source
Pulsar, le dernier projet de l'Apache Software Foundation à atteindre le statut de projet de premier niveau, est très souvent comparé à Kafka, un autre projet de l'ASF.
Pulsar est une plateforme de messagerie hautement évolutive et à faible latence fonctionnant sur du matériel de base. Elle offre une sémantique simple de pub-sub et de file d'attente sur les sujets, un cadre de calcul léger, une gestion automatique des curseurs pour les abonnés et une réplication entre centres de données.
Pendant ce temps, le rapport Apache Kafka 2018, qui a interrogé plus de 600 utilisateurs, a constaté que les pipelines de données et la messagerie étaient les deux principales utilisations de la technologie. Il a constaté une utilisation croissante avec l'essor des architectures microservices.
"Les cas d'utilisation des deux systèmes se recoupent largement, mais les conceptions initiales étaient très différentes", a déclaré Matteo Merli, l'un de ses créateurs qui a depuis formé Streamlio, une startup proposant une plateforme de données rapides.
Yahoo a créé Pulsar en tant que système unique multi-tenant comme solution à ses problèmes de systèmes de messagerie multiples et d'équipes multiples les déployant.
Il a été publié en open source en 2016 et est entré dans l'incubateur ASF en juin 2017. Depuis environ quatre ans, elle est utilisée dans les applications Yahoo Mail, Finance, Sports, Gemini Ads et Sherpa, le service distribué clé-valeur de Yahoo.
Dans un billet de blog, le cofondateur Sijie Guo a résumé Pulsar et Kafka de la manière suivante :
"Apache Pulsar combine le streaming haute performance (que poursuit Apache Kafka) et la mise en file d'attente traditionnelle flexible (que poursuit RabbitMQ) dans un modèle de messagerie et une API unifiés. Pulsar vous offre un seul système pour le streaming et la mise en file d'attente, avec les mêmes performances élevées, en utilisant une API unifiée."
Selon M. Merli, "il y a des différences entre le streaming et la mise en file d'attente ; il y a de nombreux cas d'utilisation où vous avez besoin de l'un ou de l'autre, mais la plupart des gens ont besoin des deux pour différents cas d'utilisation."
Architecture à deux couches Une conception à deux couches est la clé de Pulsar, a déclaré M. Merli. Il y a une couche de courtiers sans état qui reçoivent et délivrent les messages, et une couche de persistance avec état, avec un ensemble de nœuds de stockage Apache BookKeeper appelés bookies qui fournissent un stockage durable à faible latence.
Pulsar a été construit sur l'idée d'avoir des garanties de données solides, a déclaré Merli. Il a été conçu pour la consommation partagée, alors que Kafka ne l'était pas. Et Pulsar permet aux utilisateurs de configurer une période de rétention des messages, même après que tous les abonnements les aient consommés.
Son architecture en couches et son stockage centré sur les segments constituent des avantages essentiels :
Vous pouvez faire évoluer les courtiers ou la couche de stockage indépendamment. Comme les brokers sont sans état, un sujet peut être rapidement déplacé vers d'autres brokers. Cela ouvre une voie efficace pour équilibrer le trafic entre les brokers. Il est possible d'avoir plusieurs consommateurs sur la même partition et vous pouvez en ajouter autant que vous le souhaitez. Comme aucune donnée n'est stockée localement, il n'est pas nécessaire de copier les données de la partition lors de l'expansion de la capacité et aucun rééquilibrage n'est nécessaire. Lorsqu'un sujet partitionné est créé, Pulsar partitionne automatiquement les données d'une manière agnostique pour les consommateurs et les producteurs.
Le courtier envoie les données des messages à plusieurs nœuds BookKeeper, qui écrivent les données dans un journal en écriture anticipée et en gardent également une copie en mémoire. Avant que le nœud n'envoie un accusé de réception, le journal est écrit de force sur un stockage stable, ce qui garantit la rétention même en cas de coupure de courant. Les partitions de sujets peuvent évoluer jusqu'à la capacité totale du cluster BookKeeper, et vous pouvez faire évoluer un cluster en ajoutant simplement des nœuds.
Depuis l'entrée dans l'incubateur, nous nous sommes attachés à faciliter le démarrage de Pulsar.
La version 2.0 de Pulsar a été publiée en juin. Elle comprend une fonction de traitement "native" appelée Pulsar Functions, qui permet aux utilisateurs d'écrire des fonctions de traitement en Java ou en Python pour les données qui circulent dans le pipeline. La version 2.2 sera bientôt disponible et comprendra une fonction d'interrogation SQL interactive.
Pulsar offre de multiples liaisons de langage et de protocole, notamment Java, C++, Python et WebSockets, ainsi qu'une API compatible avec Kafka.
Pour en savoir plus : Apache Pulsar : Est-il un tueur de KAFKA ?
Apache Pulsar : Est-il un tueur de KAFKA ? Écrit par Bhagwan s. Soni
POURQUOI choisir Apache Pulsar plutôt que Kafka ?
Apache Pulsar est une édition d'entreprise de PubSub, développée à l'origine par Yahoo et maintenant soutenue par Apache Software Foundation. Apache Pulsar fonctionne sur des 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, peut-être avec des noms différents. Pulsar a de nombreuses fonctionnalités mais je voudrais en souligner certaines qui nous aideront à nous différencier de Kafka.
1} Apache Pulsar vous donne 3 types d'abonnement sur le sujet : A} Exclusif - Un seul consommateur consommera les données d'un sujet. B} Partagé - Plusieurs consommateurs vont consommer les données d'un sujet C} Basculement - Plus d'un consommateur, mais à un moment donné, un seul consommera les données.
2} Chaque espace de nom peut avoir un ou plusieurs sujets.
3} Un soutien fort pour la Multitanence
4} Réplication des données sur plusieurs clusters
5} Support solide de la durabilité des messages contre la perte de données