需求
物联网系统,使用TDengine+kafka存储实时数据,上千台设备每3秒发送过来的数据存储到kafka,再从kafka拉取消息消费,把数据写入数据库。使用@KafkaListener监听器会一直监听kafka topic,会频繁的消费消息、写入数据库,造成频繁的io,现在要求减少io,提高系统性能。
分析
接管springboot 监听器自动创建kafka消费者,手动创建kafka消费者,手动拉取消息,然后通过定时任务控制
配置类
/**
* kafka消费者配置
*
* @ClassName KafkaConsumerConfig
* @Author Chen
* @Date 2024/10/09 17:00
*/
@Slf4j
@Configuration
@EnableKafka
public class KafkaConsumerConfig {
/**
* kafka侦听器容器工厂
*
* @return {@link KafkaListenerContainerFactory}<{@link ConcurrentMessageListenerContainer}<{@link String}, {@link String}>>
*/
@Bean
public KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<Integer, String>> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<Integer, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
// 设置 consumerFactory
factory.setConsumerFactory(consumerFactory());
// 设置消费者组中的线程数量
factory.setConcurrency(3);

最低0.47元/天 解锁文章
2683

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



