gpt4 book ai didi

java - 聆听单个消费者的多个主题

转载 作者:行者123 更新时间:2023-12-02 09:05:10 24 4
gpt4 key购买 nike

我最近开始研究 Apache Kafka。我在各种博客上不断看到的一件事是多个主题配置到同一个监听器。

我的问题是,这样做是一个好的做法吗?假设我们每秒收到关于每个主题的 100 条消息。每个主题的消息需要不同的定制。以及来自的消息。各个主题进入各自的表格。示例:来自 topic1 的消息转到 topic_1 表。

这是我正在开发的一个 Spring Boot 应用程序。我还想知道我 future 可能面临哪些其他挑战。

更新:代码示例

@KafkaListener(topics = "#{'${kafka-consumer.topics}'.split(',')}", groupId = "${kafka-consumer.groupId}")
public void consume(KafkaConsumer<String, String> record) {
int count = 0;
ConsumerRecords<String, String> records = record.poll(1000);
for (ConsumerRecord<String, String> data : records) {
System.out.println(data.value());
count++;
}
//record.listTopics()
if(count > 0){
record.commitAsync();
}

}

最佳答案

My question is, Is it a good practice to do so?

这取决于用例。在您的主题与表相关的示例中,您可能应该为每个主题拥有一个消费者,因为如果您的消费者从许多不相关的主题中消费,那么消费将会减慢。消费的效率低于生产,因此最常见的用例是将主题拆分为多个分区,并且每个主题有多个消费者。

如果主题相关,那么从多个主题进行消费是有意义的。有一个用例,Confluence 编写了一份白皮书,介绍他们在数据中心之间复制数据的位置,并且主题以数据中心 ID 为前缀。然后,消费者从名称匹配但数据中心 ID 不同的所有主题中进行消费。

关于java - 聆听单个消费者的多个主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com