springboot集成kafka client并消费消息
1. 依赖
<!-- kafka client --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>
2. 配置文件配置kafka bootstrap-server
######## kafka client ############ spring.kafka.bootstrap-servers=127.0.0.1:9092 spring.kafka.consumer.group-id=group-dl-guard
3. 消费消息
@Component public class KafkaClient { private Logger log = LoggerFactory.getLogger(KafkaClient.class); @KafkaListener(topics = {"topic-"},groupId = "group-dl-guard") public void listenDlServer(String input) { log.info(input); } }
4. 配置group-id是因为不同的consumer在kafka中管理中都需要配置group-id
摘文取自:https://www.cnblogs.com/zhaoshizi/p/12297646.html
文章中提到,消费者在zookeeper中注册中,消费者注册标识符(Consumer Identifiers Registry)是保存在zookeeper的/consumers/[group_id]/ids/[consumer_connector_id]的路径下,这些消费者注册节点形成一棵树,当有消费者加入或离开时,树上所有的消费者都会被通知到,从而进行rebanlance。
消费者在zookeeper注册的路径与topic并没有关系,反而与groupid绑定,这是因为同一个consumer可以消费不同的topic。如果不同的consumer使用同一个groupid消费不同的topic,而任何一个topic的consumer出现加入或离开等变化时,所有groupid组里的consumer都会发生rebanlance。从而可能导致上面调试时出现的问题。
所以kafka 不同的consumer需要使用不同的group id,以减小相互之间的影响。
分类:
Big data
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!