【问题标题】:How to tell spring-kafka consumer to stop consuming, at runtime?如何在运行时告诉 spring-kafka 消费者停止消费?
【发布时间】:2022-01-17 12:41:45
【问题描述】:

我正在使用带有 KafkaListener 注释的 spring-kafka v2.5.2。

在运行时,我希望能够向消费者发送信号以停止消费。

我看到了autoStartup 参数,但它似乎只适用于初始化,之后无法更改。

我看到了 KafkaListenerEndpointRegistry 的方法 close()...

你有什么建议吗?

提前致谢。

【问题讨论】:

    标签: apache-kafka spring-kafka


    【解决方案1】:

    给每个监听器一个id属性;然后,您可以使用 KafkaListenerEndpointRegistry bean 获取侦听器容器的引用,然后您可以启动和停止:getListenerContainer("myId").stop()

    这已记录在here

    【讨论】:

    • 感谢您的回复。 “id”字段是强制性的吗?我想创建一个创建启动/停止方法的休息操作,并仅在我想要执行更改的代理上调用此 api。
    • 这不是强制性的,但它可以更容易地找到侦听器(如果您有多个)。如果您只有一个,或者您可以通过其他方式告诉您想要停止哪个(例如通过主题名称),您可以调用 getListenerContainers() 并遍历它们。
    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 2019-08-27
    相关资源
    最近更新 更多