springboot+kafka中@KafkaListener如何动态指定多个topic
说明:本项目为springboot+kafak的整合项目,故其用了springboot中对kafak的消费注解@KafkaListener
首先,application.properties中配置用逗号隔开的多个topic。
在这里插入图片描述
方法:利用Spring的SpEl表达式,将topics 配置为:@KafkaListener(topics = "#{'${topics}'.split(',')}")
在这里插入图片描述
运行程序,console打印的效果如下:
在这里插入图片描述
因为只开了一条消费者线程,所以所有的topic和分区都分配给这条线程。
如果你想开多条线程去消费这些topic,添加@KafkaListener注解的参数concurrency的值为自己想要的消费者个数即可(注意,消费者数要小于等于你开的所有topic的分区数总和)
在这里插入图片描述
运行程序,console打印的效果如下:
在这里插入图片描述
网友评论