我们在运行中如果需要暂停启动容器时可以通过此类KafkaListenerEndpointRegistry来处理。
KafkaListenerEndpointRegistry源码(只解释了核心代码):
public class KafkaListenerEndpointRegistry implements
//当spring销毁bean时执行操作
DisposableBean,
//在Spring加载和初始化所有bean后开启异步线程来管理容器
SmartLifecycle,
//注入ApplicationContext对象
ApplicationContextAware,
//(spring观察者模式体现)
//监听ContextRefreshedEvent事件
ApplicationListener<ContextRefreshedEvent> {
//存放所有listenerContainers线程安全容器
private final Map<String, MessageListenerContainer> listenerContainers =
new ConcurrentHashMap<String, MessageListenerContainer>();
private int phase = AbstractMessageListenerContainer.DEFAULT_PHASE;
//applicationContext 对象
private ConfigurableApplicationContext applicationContext;
//applicationContext 刷新标志位
private boolean contextRefreshed;
//判断该线程是否运行
private volatile boolean running;
//获取s

本文介绍了如何在SpringBoot2.x应用中利用KafkaListenerEndpointRegistry来暂停和控制Kafka监听容器。通过解析关键源码,并提供测试代码展示其实现,帮助理解其工作原理。
最低0.47元/天 解锁文章
3311

被折叠的 条评论
为什么被折叠?



