为什么kafka客户端需要配置 /etc/hosts文件
问题背景 前段时间,遇到一个kafka集群部署在k8s中,而kafka客户端在另一个k8s集群的pod的容器中,kafka集群中配置的advertised_listeners便是hostname。然而当时我只知道kafka集群的ip地址,当在客户端直接使用ip操作broker的时候便报错无法解析一个hostname。 当时不知道什么原因,只听同事说需要在kafka客户端对应的yaml文件中添加 HostAliases 字段然后重新部署kafka客户端所在的pod。 然后便可以访问了。 不明所以然的我,查了一下hostAliases的使用发现没什么特别之处。然后查了listeners的使用也没有说是可以携带域名之类的 最后查了一下kafka客户端的请求过程才明白是怎么回事(笔者接触kafka不久只是阅读过文档并没有了解到其客户端的请求过程和步骤,所以迷惑了这么久 - _ -) kafka broker配置介绍 kafka listeners及其相关配置项的作用 先来看一下官方文档对kafka broker中有关listeners配置项的介绍: 名称 描述 类型 默认值 有效值 重要性 listeners 监听器列表 - 使用逗号分隔URI列表和监听器名称。如果侦听器名称不是安全协议,则还必须设置listener.security.protocol.map。指定主机名为0.0.0