繁体   English   中英

如何在 spring 引导中调用具有相同主题的两个 Kafkalistener?

[英]How to call both Kafkalistener with same Topic in spring boot?

我想用相同的主题配置调用两种不同的方法。

假设我有一个消费者项目,它有两个不同的类,具有相同的 kafkalistener 方法。

使用 class A 的方法 1:

@KafkaListener(topics = "vijay", groupId = "group_id")
    public void consumeMethodOne(String jsonString) {
        System.out.println("ConsumerPrice1-->"+jsonString);
    }

使用 class B 的方法 2:

@KafkaListener(topics = "vijay", groupId = "group_id")
    public void consumeMethodTwo(String jsonString) {
        System.out.println("ConsumerPrice1-->"+jsonString);
    }

还有我的制片人:

@Autowired
    private KafkaTemplate<String, String> kafkaTemplate;
    public void send(String value) {
        kafkaTemplate.send("vijay", "This is testing producer");
    }

当我运行这个程序时,只有一个方法执行所以如果我想执行这两种方法,因为它们都有相同的主题,那么我该如何设置?

消费者组是对主题消费者进行负载平衡的一种方式。 如果您在同一组中有两个消费者(在您的情况下为“group_id”),那么一次只有一个消费者会消费一条消息。 通常这就像消费者的应用程序 ID,并用于扩展消费者。

但是,如果您希望两个消费者都使用相同的消息,您可以通过给他们两个不同的组 ID 来做到这一点。

@KafkaListener(topics = "vijay", groupId = "group_id2")
    public void consumeMethodTwo(String jsonString) {
        System.out.println("ConsumerPrice1-->"+jsonString);
    }

暂无
暂无

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

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