一、kafka配置
1.1 配置文件修改
vim /usr/local/kafka/config/server.properties
listeners=PLAINTEXT://:9092
# 必须声明域名
advertised.listeners=PLAINTEXT://test.kafka:9092
1.2 hosts绑定(必须绑定)
# vim /etc/hosts
# host 绑定本地内网ip
10.0.26.26 test.kafka
二、nat服务器配置
# 以下是双网卡的例子:eth1是内网,eth0是外网
-A PREROUTING -i eth1 -p tcp --dport 5672 -j DNAT --to-destination kafka外网ip
-A PREROUTING -i eth1 -p tcp --dport 9092 -j DNAT --to-destination kafka外网ip
-A POSTROUTING -d kafka外网ip -o eth0 -p tcp -j SNAT --to-source NAT服务外网ip
三、nat同网段内网服务器配置
1.1 hosts绑定
# vim /etc/hosts
NAT服务内网ip test.kafka
1.2 客户端kafka配置
[kafka]
host = NAT服务内网ip:19092
四、原理
- 客户端连接kafka服务器:通过nat服务器内网连接至真实的kafka地址
- kafka元数据返回advertised.listeners地址给客户端
- 客户端获取到:test.kafka:9092,此行本地绑定的hosts将数据推送至nat服务器,完成完整的数据推送