Estou a avaliar o Google PUB / SUB vs Kafka?

Não trabalhei muito no kafka, mas queria construir um oleoduto de dados em GCE. Então, queríamos conhecer o Kafka vs PUB / Sub. Basicamente eu quero saber como a consistência da mensagem, a disponibilidade da mensagem, a confiabilidade da mensagem é mantida em Kafka e Pub/sub

Obrigado.
Author: Mikhail Berlyant, 2016-07-25

2 answers

Além de o Google Pub/Sub ser gerido pelo Google e o Kafka ser código aberto, a outra diferença é que o Google Pub/Sub é uma fila de mensagens (por exemplo, Rabbit MQ), onde como Kafka é mais um log de transmissão. Não se pode "reler" ou "repetir" mensagens com o Pubsub.

Com o Google Pub / Sub, uma vez que uma mensagem é lida a partir de uma assinatura e ACKed, desaparece. A fim de ter mais cópias de uma mensagem a ser lido por diferentes leitores, você "espalhar" o tópico, criando "assinaturas" para esse tópico, onde cada assinatura terá uma cópia completa de tudo o que entra no tópico. Mas isso também aumenta o custo porque o Google cobra Pub / Sub uso pela quantidade de dados lidos para fora dele.

Com o Kafka, você define um período de retenção (acho que são 7 dias por padrão) e as mensagens ficam em Kafka, independentemente de quantos consumidores o lerem. Você pode adicionar um novo consumidor (também conhecido como assinante), e ter que começar a consumir a partir da frente do tópico a qualquer momento que você quiser. Você também pode defina o período de retenção para ser infinito, e então você pode basicamente usar Kafka como um datastore imutável, como descrito aqui: http://stackoverflow.com/a/22597637/304262

Amazon AWS Kinesis é uma versão gerenciada do Kafka, enquanto eu penso no Google Pubsub como uma versão gerenciada do Rabbit MQ. Amazon SNS with SQS is also similar to Google Pubsub (SNS provides the fanout and SQS provides the queueing).
 25
Author: gunit, 2018-03-14 00:49:02

Uma grande diferença entre o Kafka vs. Cloud Pub / Sub é que o Cloud Pub / Sub é totalmente gerido para ti. Você não tem que se preocupar com máquinas, configurar grupos, parâmetros de afinação fina etc. o que significa que um monte de trabalho DevOps é tratado para você e isso é importante, especialmente quando você precisa escalar.

 5
Author: Mete Atamel, 2016-07-26 10:49:41