背景

内网kafka集群需要映射到其他环境,供其他消费这消费数据;测试后发现,nat之后的ip 端口是通的,但是无法消费数据。

解决方案

kafka 使用 advertised.listeners 参数,将Kafka的链接方式从内网IP更换成主机名或者域名,这样消费者在其他环境消费的时候返回的就是主机名,不再是内网kafka的IP;从而解决映射之后无法消费问题。

先决条件

  1. 在内网环境,所有需要使用kafka的链接配置都要改成新的主机名,__且保证能正确的解析到内网IP__(可以用DNS或者添加hosts文件解决)
  2. 在其他环境,消费者配置kafka的主机名加端口,多个ip用逗号分隔,__且保证能正确解析到映射后的IP__

实施方案

kafka 配置添加主机名

{09AE5A66-63EE-2606-8412-0A1A922F693C}.jpg
添加之后检查zk里面的kafka信息

{EBDE8426-129B-8A91-B415-F3C585B407E4}.jpg