赞
踩
平时工作中,我们对接kafka主要使用的是spring kafka,但是指定的topic到底如何设置线程数,设置的线程数作用范围是什么?详细很多人并不清楚.
核心关键类:
KafkaListenerAnnotationBeanPostProcessor 扫描所有的@KafkaListener注解生成对应的KafkaListenerEndpointDescriptor.然后在org.springframework.kafka.config.KafkaListenerEndpointRegistrar#registerAllEndpoints中基于这些point去创建concurrency(默认是3个)个数量的kafka consumer.
因此假定我们有一个kafka集群, 项目中定订阅了其中的2个topic,且每个topic都使用了独立的@KafkaListener注解,则会分别创建3个kafa consumer去订阅消费.
如果我们在一个@KafkaListener中同时订阅这2个topic,则只会创建3个kafka consumer去消费这2个topic,在开发中需要对接收的消息,进行类型区分
下图是一个@KafkaListener 消费3个topic的示例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。