消费kafka数据连接kafka失败问题

问题一:

消费kafka数据 日志为info级别时 卡在下图 处不动 说明连接失败 这里有问题的是 在代码里没有写过主机名(通常 只写url 但是 日志却打印出来了主机名)

调整日志数据级别为debug也只是发现是连接kafka失败  kafka ip地址确认写的是正确的情况下 发现日志显示 error connection to node(kafka集群名)。问题是 并没有在代码中写过 kafka节点名字 只写过ip 。

最后发现问题是

kafka 消费者 消费kafka时 消费者 会根据提供的ip 去找到对应的kafka节点 并返回kafka节点名。然后 会根据节点名 去与kafka进行连接 此时 有一个问题是。如果我们的集群本地没有配置hosts (kafka 节点 与节点名的映射关系)会出现 连接不上的情况 与我们没配置 另一台 集群名的和ip对应关系 直接ssh集群名 的效果基本 相同

解决方式是 编辑/etc/hosts 文件 (可能需要sudo 权限) 设置映射名

问题二: 生产者生产数据时 debug日志报  NOT_ENOUGH_REPLICAS

ack 设为 -1,broker 的 min.insync.replicas 参数起作用(一个典型的场景是,topic 3 副本,客户端设置 acks = -1,服务端设置 topic level 的 min.insync.replicas = 2,这样至少有 2 个副本写入后,broker 才会返回;但是如果 topic 只有 1 个副本,而 acks = -1,min.insync.replicas = 2,就会报 NOT_ENOUGH_REPLICAS 错误); 即分区数如果是1 哪怕不配置min.insync.replicas 也写入不了 。 解决方法 在不改变分区的情况下 那只能把ack 改成 0 或 1 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值