赞
踩
我在一次使用kafka过程中,使用spring的kafka包。
- <dependency>
- <groupId>org.springframework.kafka</groupId>
- <artifactId>spring-kafka</artifactId>
- <version>2.0.5.RELEASE</version>
- </dependency>
在本地开发调试中能够正常的生产、消费消息。但是在上线后,接收不到其他团队生产的kafka。看日志已经成功连接上broker服务器,所以排除了网络问题。后来经过多方的检查发现,对方使用org.apache.kafka这个包生产消息。
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka_2.10</artifactId>
- </dependency>
在修改包的版本,与对方的包版本一致之后,就能够正常收发消息了。
产生的原因:因为生产者在发消息时,指定zk参数,consumer的信息都存在zk中,而spring-kafka配置的bootstrap.server是broker.list的地址,不是zk集群地址,并且这个包没有提供zk集群的配置方式。换成org.apache.kafka这个包后,配置zookeeper.connect为zk集群地址即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。