问题一:
消费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
423

被折叠的 条评论
为什么被折叠?



