概要:使用方式、工作流程(解析、注册、监听、调用)
spring-kafka基于@KafkaListener注解
一、使用方式
注解内指定topic名,对应topic有新消息来时,testListen方法被调用,参数就是topic内新消息。过程异步
二、工作流程
1.解析注解 2.注册:解析后数据注册到spring-kafka 3.监听topic消息 4.调用注解标识方法,将监听到数据作为参数传入
2.1解析
由KafkaListenerAnnotationBeanPostProcessor类解析,实现BeanPostProcessor接口:
2个方法,分别在bean初始化前后被调用:在postProcessAfterInitialization方法内解析
2.2注册
解析获取含有@KafkaListener注解的类,类相关信息(包括注解所在的方法、当前的bean等)会被注册到 KafkaListenerEndpointRegistry内。
KafkaListenerEndpointRegistry维护多个Listener Container,每个@KafkaListener都对应一个Listener Container,每个Container对应一个线程
2.3监听
注册完,每个Listener Container开始工作,启一个新线程 初始化KafkaConsumer、监听topic消息等
2.4调用
监听数据后,container组织消息格式,调“解析得到@KafkaListener方法”,组织后消息作为方法参数
https://blog.csdn.net/chinawangfei/article/details/104795711
网友评论