繁体   English   中英

如何使用 Quarkus 在 Kafka 的同一主题中设置多个消费者

[英]How to set multiple consumers in the same topic in Kafka using Quarkus

我正在使用 Quarkus 框架构建一个 Kafka 消费者,它将读取一个具有 3 个分区的主题。 下面的代码片段正在运行,但基于日志,我只是用 3 个分区启动 1 个使用者。 我现在的问题是如何在运行应用程序后生成 3 个消费者。

@Incoming("topic-1")
public CompletionStage<Void> onMessage(KafkaRecord<String, String> message) throws IOException {

    LOG.info("Kafka order message with value = {} arrived from topic {} ", message.getPayload(),
            message.getTopic());

    //JsonObject event = new JsonObject(message.getPayload());

    try {
        if (true) {
            LOG.info("Kafka message: " + message);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return message.ack();
}

请参阅示例日志:

INFO [org.apa.kaf.cli.con.int.ConsumerCoordinator] (vert.x-kafka-consumer-thread-0) [Consumer clientId=testconsumer, groupId=kafka-detection-consumer] 第 64 代组的已完成分配:{testconsumer-bf6d314c-44e1-47b1-9439-fe4058951841=分配(分区=[test_part-0,test_part-1,test_part-2])}

在此处输入图像描述

如果您在容器平台(Docker、K8S...)上运行您的应用程序,那么您可以水平扩展您的服务; 否则,请使用不同的端口再次运行您的应用程序。

当 Kafka 客户端启动时,它会被分配到某个分区,因此同一个客户端不能从多个主题分区中消费。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM