如何实现 Java Kafka Client 消费多个Topic

一、流程概述

journey
    title 消费多个Topic的流程
    section 开发者教学
        开始 --> 理解Kafka基本概念 --> 创建Kafka消费者实例 --> 订阅多个Topic --> 消费消息 --> 结束

二、具体步骤及代码示例

1. 理解Kafka基本概念

在开始编写代码之前,首先需要确保你对Kafka的基本概念有一定的了解,包括Producer、Consumer、Topic等概念。

2. 创建Kafka消费者实例

首先,我们需要创建一个Kafka的消费者实例,代码如下:

// 创建Kafka消费者实例
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "group-1");
props.put("enable.auto.commit", "true");
props.put("auto.commit.interval.ms", "1000");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);

3. 订阅多个Topic

接下来,我们需要订阅多个Topic,代码如下:

// 订阅多个Topic
consumer.subscribe(Arrays.asList("topic1", "topic2", "topic3"));

4. 消费消息

最后,我们编写消费消息的逻辑,代码如下:

// 消费消息
while (true) {
    ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
    for (ConsumerRecord<String, String> record : records) {
        System.out.printf("offset = %d, key = %s, value = %s%n", record.offset(), record.key(), record.value());
    }
}

三、关系图

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE-ITEM : contains
    PRODUCT ||--|{ LINE-ITEM : includes

结语

通过以上步骤,你已经学会了如何使用 Java Kafka Client 消费多个Topic。在实际开发中,可以根据需要订阅不同的Topic,然后编写相应的逻辑来处理接收到的消息。希望本文对你有所帮助,祝你在使用Kafka时顺利。