kafka会把历史数据都获取下来
去掉一些ConcurrentKafkaListenerContainerFactory的set属性值留一些重要的就行
@Bean("ackContainerFactory")
public ConcurrentKafkaListenerContainerFactory ackContainerFactory(ConsumerFactory consumerFactory){
ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory();
//去掉一些ConcurrentKafkaListenerContainerFactory的set属性值留一些重要的就行
factory.setConsumerFactory(consumerFactory);
//设置默认不监听kafka设置的
factory.setAutoStartup(false);
return factory;
}
public static final String KAFKA_LISTENER_ID = "KAFKA_ID";
@KafkaListener(id = KAFKA_LISTENER_ID,topics = {"#{'${receiveTopics}'.split(',')}"},containerFactory = "ackContainerFactory")
public void message(ConsumerRecord<String, String> record) {
//获取topic
String topic = record.topic();
//获取键值(有可能乱码)
String flieName = new String(record.key().getBytes("UTF-8"),"UTF-8");
//获取内容
String valueTopic = new String(record.value().getBytes("UTF-8"),"UTF-8");
…………处理操作
}