Je suis en train d'évaluer Google PUB/SUB vs Kafka?

Je n'ai pas beaucoup travaillé sur kafka mais j'ai voulu construire un pipeline de données à GCE. Nous voulions donc savoir Kafka vs PUB/Sub. Fondamentalement, je veux savoir comment la cohérence du message, la disponibilité du message, la fiabilité du message est maintenue dans Kafka et Pub / sub

Merci

25
demandé sur Mikhail Berlyant 2016-07-25 18:40:14

2 réponses

en plus de Google Pub / Sub géré par Google et Kafka étant open source, l'autre différence est que Google Pub/Sub est une file d'attente de messages (par exemple Lapin MQ) où comme Kafka est plus d'un journal de streaming. Vous ne pouvez pas "relire" ou "rejouer" des messages avec Pubsub.

avec Google Pub / Sub, une fois qu'un message est lu hors d'un abonnement et ACKed, il est parti. Afin d'avoir plus de copies d'un message destiné à être lu par différents lecteurs, vous "fan-out" le sujet en créant "abonnements" pour ce thème, où chaque abonnement aura un exemplaire complet de tout ce qui entre dans le sujet. Mais cela augmente également le coût parce que Google charge Pub / Sub utilisation de la quantité de données lues hors de celui-ci.

avec Kafka, vous définissez une période de rétention (je pense que c'est 7 jours par défaut) et les messages restent à Kafka quel que soit le nombre de consommateurs qui les lisent. Vous pouvez ajouter un nouveau consommateur (abonné aka), et le faire commencer à consommer dès le début du sujet à tout moment vous voulez. Vous pouvez également définir la période de rétention à l'infini, et ensuite vous pouvez fondamentalement utiliser Kafka comme un datastore immuable, comme décrit ici:http://stackoverflow.com/a/22597637/304262

Amazon AWS Kinesis est une version gérée de Kafka alors que je pense à Google Pubsub comme une version gérée de Rabbit mq. Amazon SNS avec SQS est également similaire à Google Pubsub (SNS fournit le fanout et SQS fournit la file d'attente).

25
répondu gunit 2018-03-14 00:49:02

une grande différence entre Kafka et Cloud Pub/Sub est que Cloud Pub/Sub est entièrement géré pour vous. Vous n'avez pas à vous soucier des machines, de la configuration des clusters, des paramètres de réglage précis, etc. ce qui signifie que beaucoup de travail DevOps est géré pour vous et c'est important, surtout quand vous avez besoin d'échelle.

5
répondu Mete Atamel 2016-07-26 10:49:41