【发布时间】:2022-01-12 00:08:06
【问题描述】:
我有一个简单的 Kafka 消费者微服务应用程序,它使用来自某个主题的消息,并且同一个应用程序在两个不同的池中运行。
因此,当消息从生产者生成时,我的应用程序尝试使用来自主题的消息,并且仅由一个池中的一个使用。
如何停止从消费者 kafka 读取并发消息。我想在两个池中使用相同的消息。
这种情况的可能解决方案是什么
【问题讨论】:
标签: java apache-kafka kafka-consumer-api
我有一个简单的 Kafka 消费者微服务应用程序,它使用来自某个主题的消息,并且同一个应用程序在两个不同的池中运行。
因此,当消息从生产者生成时,我的应用程序尝试使用来自主题的消息,并且仅由一个池中的一个使用。
如何停止从消费者 kafka 读取并发消息。我想在两个池中使用相同的消息。
这种情况的可能解决方案是什么
【问题讨论】:
标签: java apache-kafka kafka-consumer-api
如果你的主题只有一个分区,那么只有一个相同group.id 设置的消费者可以读取这个分区。如果您必须有一个分区来进行排序,那么您需要唯一的组 ID 来在多个消费者中读取此数据。
否则,如果主题有多个分区,那么应该有 2 个消费者在积极阅读它们。
如果不打电话给poll(),你会“停止”阅读。
【讨论】:
while (true) { consumer.poll(); },你不能使用循环,或者你可以通过替换布尔条件来停止它。你甚至可以拨打consumer.close()