Quels sont les avantages et les inconvénients de Kafka sur Apache Pulsar

Yahoo a développé Pulsar, pub-sub système de messagerie et en a fait open source. C'est maintenant le projet d'incubation D'Apache. Depuis Kafka est également utilisé dans le même but. Je veux savoir, major plus et moins de points de Kafka sur Pulsar.

28
demandé sur nha 2017-09-05 09:50:04

4 réponses

j'ai joué un peu avec les deux dernièrement, et voici ce que j'ai compris.

Neutre:

  • J'allais faire gagner Kafka sur la communauté / documentation etc. Mais je n'ai pas pu trouver facilement des réponses aux questions que j'avais sur Kafka, certaines étaient anciennes et déroutantes (ciblant l'API legacy). Mais la documentation Pulsar est assez bonne, les développeurs sont très réactifs sur Slack (hello @Matteo Merli:), et les pièces sous-jacentes (gardien de Zoo, comptable)) avoir une documentation décente aussi bien si vous voulez plonger dans les internes.
  • Kafka vise un haut débit, Pulsar une faible latence. Les deux fournissent des paramètres de contrôle.
  • tous deux sont prêts à la production et testés dans plusieurs entreprises

Pro pulsar:

  • d'après mon expérience, L'API est plus facile à utiliser. À Kafka, le courtier est stupide et les consommateurs font le travail de structurer les communications comme bon leur semble. Ce la flexibilité se fait au détriment de L'utilisateur de Kafka qui doit comprendre comment assembler les pièces. Je suppose que L'avantage prévu est une flexibilité accrue, mais depuis Pulsar a été en mesure de répliquer Kafka consommateurs API (et avec assez peu de code) je donne que comme un pro à Pulsar.
  • vous pouvez faire des choses qui ne sont pas faciles à faire (ou peut-être impossibles à faire à Kafka): multi-tenance (sécurité, isolement...), gestion des ressources (them throttling, quotas), géo-réplication
  • Il a quelques fonctionnalités que Kafka manque actuellement, comme chercher à un MessageId particulier
  • Pulsar balance à des millions de sujets, whicle Kafka est limité par la façon dont il structure les données dans Zookeeper
  • déploiement plus Facile. Un Pulsar autonome lancera son propre Zookeeper local, et j'ai personnellement trouvé la configuration plus facile à comprendre
  • écrit en Java, contre un mélange de Scala et de code Java. J'ai aussi trouvé le codebase bien organisé et beaucoup plus facile à suivre. En partie parce qu'il s'appuie sur Zookeeper et Bookkeeper, qui sont des projets externes avec leur propre documentation/communauté/développeurs, etc. (s'il vous plaît noter, ceux sont également dans la Fondation Apache, et aussi venant de Yahoo afin qu'ils travaillent bien ensemble).

Pro Kafka:

  • Kafka a des choses construites sur le dessus comme Kafka Streams (Je ne l'ai jamais utilisé donc je ne peux pas dire s'il y a un équivalent)

également lire:

27
répondu nha 2017-11-24 17:22:25

il est très étrange que cette question ait été mise aux voix, car c'est une question légitime demandant de comparer 2 projets de streaming de données Apache

Apache Kafka est plus mature (elle existe depuis plus longtemps) et a des IPA de plus haut niveau (i.e. Kstream). Sa maturité limite toutefois la fluidité et la flexibilité, c'est-à-dire ~500 PR ouvert sur github

Apache Pulsar a étudié en profondeur les décisions de conception D'Apache Kafka, et a incorporé une conception améliorée et un ensemble de capacités passionnantes c.-à-d. l'idée de namespacing les sujets, et de permettre L'ACL ou les quotas à appliquer sur un niveau nom-espace semble une bonne idée profounding, pour fournir mieux multi-tenancy assistance. D'autres caractéristiques excitantes de Pulsar est le géo-réplication, ainsi que unification de la file d'attente et de la diffusion en continu

18
répondu Antonios Chalkiopoulos 2017-12-09 23:11:33

Je n'ai pas de comparaison directe par fonction, bien que nous ayons écrit quelques billets de blogs illustrant certains des avantages du Pulsar Apache.

4
répondu Matteo Merli 2017-10-07 00:14:07

nous avions besoin d'une plateforme de streaming avec des sujets persistants et une latence raisonnable et un débit élevé. Récemment, nous avons évalué si nous devions aller avec Kafka ou Pulsar et contrairement à @Nha nous sommes maintenant en faveur D'Apache Kafka. Voici nos résultats:

Pulsar-Pros

  • riche en fonctionnalités persistant/non persistantes sujets, multilocataire, Acl, Multi-DC réplication etc.
  • plus de flexibilité pour L'API client-y compris Desfutures complètes, fluent interfaces etc.
  • les composants du client java sont des threads sûrs - le consommateur peut reconnaître les messages provenant de différents threads

Pulsar-Cons

  • java client a peu ou pas de javadoc
  • petite collectivité-8 questions sur les empilements
  • concept de messageId lié à BookKeeper - les consommateurs ne peuvent pas facilement se positionner sur le sujet par rapport à Kafka offset qui est une séquence continue de nombre.
  • le lecteur ne peut pas facilement lire le dernier message dans le sujet - besoin de parcourir tous les messages à la fin.
  • pas de transactions
  • plus grande complexité opérationnelle-Zookeeper + broker nodes + BookKeeper-tous regroupés
  • la latence est discutable - il y a un appel à distance supplémentaire entre le nœud de courtier et le comptable (par rapport à Kafka)

Kafka - Pros

  • très riche et utile javadoc
  • Kafka Streams
  • communauté mature et large
  • plus simple à utiliser dans les composants sans production-noeud de courtier fournit aussi le stockage
  • transactions-atomic lit&écrit dans les sujets
  • décalages forme d'une séquence continue - consommateur peut facilement chercher à dernier message

Kafka-Cons

  • le consommateur ne peut pas accuser réception d'un message d'un autre thread
  • pas de multilocataire
  • pas de réplication Multi-DC robuste - (offert dans Confluent Enterprise)
4
répondu Milos Gregor 2018-06-29 17:00:45