导语:golang 使用sarama给kafka发消息报错Tried to send a message to a replica that is not the leader
有问题的kafka是按照docker官方文档启动的。不管是其一个kafka还是3个kafka都有这个问题
docker network create app-tier --driver bridge
docker run -d --name zookeeper-server \
--hostname=zookeeper-server \
--network app-tier \
-e ALLOW_ANONYMOUS_LOGIN=yes \
-e TZ="Asia/Shanghai" -p 2181:2181 \
bitnami/zookeeper:latest
docker run -d --name kafka-server1 \
--hostname=kafka-server1 --network app-tier \
-p 9092:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
-e TZ="Asia/Shanghai" \
bitnami/kafka:latest
docker run -d --name kafka-server2 \
--hostname=kafka-server2 --network app-tier \
-p 19092:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
-e TZ="Asia/Shanghai" \
bitnami/kafka:latest
docker run -d --name kafka-server3 \
--hostname=kafka-server3 --network app-tier \
-p 29092:9092 \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
-e TZ="Asia/Shanghai" \
bitnami/kafka:latest
docker run -d --name kfk-manager \
--network app-tier --restart always -p 9000:9000 -e ZK_HOSTS=zookeeper-server:2181 sheepkiller/kafka-manager
容器中kafka配置如图 怀疑是框里的问题,但是容器单节点也报错。
报错github.com/Shopify/sarama 报错Tried to send a message to a replica that is not the leader
偶尔换其他文件采集就可以。
改用手动安装就不会报错了 搜了一下,看到有人用k8s搭建也有类似这个问题。没有深入去查造成这个问题的原因。
# 1 安装jdk
# 2 安装zk
# 3 安装kafka 需要修改一下配置server.properties
#broker.id为1,设置为大于0
broker.id=1
#broker地址 ,这里不要写成host.name = 172.16.40.245, port=9092,会续会报错
listeners=PLAINTEXT://172.16.40.245:9092
#指定kafka的日志目录
log.dirs=/usr/local/kafka_2.11-0.11.0.0/kafka-logs
#连接zookeeper配置项
zookeeper.connect=172.16.40.245:2181
安装参考
https://zhuanlan.zhihu.com/p/411144406
解决问题了。暂时没有复现。