spring boot 动态添加监听kafka哪些Topic

spring boot 动态添加监听kafka哪些Topic

代码

//设置kafka信息
@Bean("ackContainerFactory")
public ConcurrentKafkaListenerContainerFactory ackContainerFactory(ConsumerFactory consumerFactory){
	ConcurrentKafkaListenerContainerFactory factory = new ConcurrentKafkaListenerContainerFactory();
	factory.setConsumerFactory(consumerFactory);
	/*
	设置默认不监听kafka设置的
	(此功能是可以动态设置是否启动kafka监听,如果不需要可以
	设置为true,甚至不用写这个方法;动态监听方法见下放)
	*/
	factory.setAutoStartup(false);
	return factory;
}

public static final String KAFKA_LISTENER_ID = "KAFKA_ID";
//监听配置文件中的receiveTopics的值使用,分割
//会监听下方配置中的test、test1、test2;三个topic
@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");
	…………处理操作
}

配置

receiveTopics: test,test1,test2

其他步骤

  1. kafka服务自带zookeeper下载与启动
  2. Spring boot配置kafka服务
  3. kafka生产者发送消息成功回调
  4. kafka根据ip端口获取消息队列上的topic
  5. kafka动态设置监听哪些topic
  6. 动态启动关闭kafka监听、设置默认不监听kafka
  7. kafka设置:1只接受消息、不发送消息;2只发送消息不接受消息;3既接受消息也发送消息;4既不接收消息也不发送消息
  8. kafka会把历史数据都获取下来
  9. Spring boot kafka执行多次多次消费
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值