pulsar和kafka在消费方面有什么区别?

问题描述 投票:1回答:1

为了消费来自Kafka的数据,我们可以在一个主题上拥有多个消费者,完全脱钩。然后,页面上的no shared consumptionhttps://streaml.io/blog/pulsar-streaming-queuing)是什么意思,它分享了卡夫卡和脉冲星之间的差异?

apache-kafka kafka-consumer-api apache-pulsar pulsar
1个回答
2
投票

在他的博客中,Sijie将共享消息称为排队。使用排队消息传递,将创建多个使用者以从单个主题接收消息。哪个消费者获得消息是完全随机的。

使用Kafka实现消息传递模式的问题在于Kafka消费者标记他们已经消费了消息。卡夫卡消费者使用所谓的高水印来消费抵消。这意味着消费者只能说“我已经处理到这一点”,而不是“我已经处理过这条消息”。

考虑以下情况:来自同一个消费者组的多个Kafka消费者正在从同一个主题分区进行处理,而其中一个消费者由于异常而另一个成功而失败。因为Kafka没有内置的方式只承认单个消息,并且只使用高水位标记,所以失败的消息会被错误地标记为消耗,而实际上它失败并需要重新处理或发布到错误队列等

为了避免这种情况,您需要每个分区只有一个消费者,这限制了主题的消费吞吐量。这反过来又要求您增加分区数量以满足您的吞吐量需求。

这个blog post有一个详细的解释

© www.soinside.com 2019 - 2024. All rights reserved.