KAFKA外网访问配置


前言

集群信息:我们公司现有N+1个集群,N个集群A主要是数据预处理,一个集群B汇总N个集群A数据后向外提供支持。
需求信息:在N集群A中部署spark streaming实时程序,然后将数据推送到集群B的KAFKA集群中,需求方连接集群B的KAFKA集群消费数据。
网络信息:N个集群A与集群B内网不通,需求方和集群B内外也不同
预期效果:N个集群A将数据通过外网推送到集群B的KAFKA集群、需求方通过外网消费集群B的KAFKA集群中的数据

集群架构图

一、配置

1.集群B中KAFKA网络ip分布

手动模拟ip

手动模拟ip

二、配置

1.涉及的kafka配置

kafka版本:1.1.0
listeners:监听列表
advertised.listeners:注册到Zookeeper的监听列表,被用于客户端连接
listener.security.protocol.map:listeners和security protocols的映射
inter.broker.listener.name:内部broker通信使用的监听列表

2.具体配置

listeners:EXTERNAL1://0.0.0.0:9091,EXTERNAL://0.0.0.0:9092,INTERNAL://0.0.0.0:9093
advertised.listeners:EXTERNAL1://10.254.10.1:9091,EXTERNAL://10.154.10.1:9092,INTERNAL://10.10.10.1:9093(每台服务器都要换成对应ip地址)
listener.security.protocol.map:EXTERNAL1:PLAINTEXT,EXTERNAL:PLAINTEXT,INTERNAL:PLAINTEXT
inter.broker.listener.name:INTERNAL

3.配置后的效果

其实这几个配置就是将对应的外网ip加端口放到ZOOKEEPER进行监听。具体效果如图:
ZK中kafka相关信息用内网去消费发现9091和9093是可以消费到数据
内网访问外网访问情况:
10.254.10.1:9091能消费到数据
10.154.10.1:9092能消费到数据


总结

这个是我第一次写博客,如果存在问题欢迎大家指正,欢迎各位大佬提出意见。因为平时工作挺忙的,所以会在每周末对相关问题进行回复,以后每周末也会对这周遇到的问题进行总结,欢迎大家关注。手动狗头!!