apache-kafka - 如何优雅地关闭正在运行的 Kafka Consumer
问题描述
我需要根据一些数据库驱动的属性来打开/关闭 Kafka 消费者。怎么可能实现。
我想到的一种方法是:当消费者标志关闭时,从消费者那里抛出异常。容器工厂配置定义为
factory.setErrorHandler(new SeekToCurrentErrorHandler());
但它积极寻求同样的信息。
有什么办法可以关闭心跳,然后根据需要重新打开。
解决方案
你可以stop()
和start()
监听器容器。
看来您正在使用@KafkaListener
,因为您使用的是容器工厂。
在这种情况下
@KafkaListener(id = "foo" ...)
然后使用KafkaListenerEndpointRegistry
豆...
registry.getListenerContainer("foo").stop();
推荐阅读
- javascript - 如何使这个 owlcarousel 正确显示项目?
- c# - READER IS CLOSED 时调用 read 的尝试无效 .. 错误在每一行重复
- node.js - 将另一个集合中的文档保存在新文档的数组中
- r - 根据 R 中表的列数过滤列表
- python-3.x - 在 termux 中安装 pynput 时出现错误
- c - 方案和C之间的混合编程
- async-await - 可以/如何调用描述符从条件和/或异步暂停方法/元类模板中受益
- http - http/net 请求不遵循 3xx 状态码
- c++ - 调用有时间限制的函数
- android - 电容器类星体“地理定位”插件未在 android 上实现