内外网都配置hosts,内网配置内部IP的hosts,外网配置外部IP的hosts
比如内网的配置的是:
10.0.1.11 kafka-hosts1
10.0.1.12 kafka-hosts2
10.0.1.13 kafka-hosts3
外网的配置是:
101.10.121.196 kafka-hosts1
101.10.121.197 kafka-hosts2
101.10.121.198 kafka-hosts3
在修改kafka的config/server.properties,把listeners和advertised.listeners改成hosts对应的主机名配置:
类似如下配置:
# 第一台服务配置
listeners=PLAINTEXT://kafka-hosts1:9092
advertised.listeners=PLAINTEXT://kafka-hosts1:9092
# 第二台服务配置
listeners=PLAINTEXT://kafka-hosts2:9092
advertised.listeners=PLAINTEXT://kafka-hosts2:9092
# 第三台服务配置
listeners=PLAINTEXT://kafka-hosts3:9092
advertised.listeners=PLAINTEXT://kafka-hosts3:9092
修改之后kafka内部能连,外网也能连到kafka
转载
https://www.cnblogs.com/xuliang666/p/11871389.html
参数说明
-
listeners listeners就是主要用来定义Kafka Broker的Listener的配置项。 是kafka真正bind的地址
-
advertised.listeners advertised.listeners参数的作用就是将Broker的Listener信息发布到Zookeeper中。 是暴露给外部的listeners,如果没有设置,会用listeners
-
inter.broker.listener.name inter.broker.listener.name:专门用于Kafka集群中Broker之间的通信
-
listener.security.protocol.map 配置监听者的安全协议的,比如PLAINTEXT、SSL、SASL_PLAINTEXT、SASL_SSLA
内外网分流示例
listener.security.protocol.map=EXTERNAL:PLAINTEXT,INTERNAL:PLAINTEXT
listeners=EXTERNAL://192.168.11.103:9092,INTERNAL://192.168.11.103:9093
inter.broker.listener.name=INTERNAL
#advertised.listeners=EXTERNAL://192.168.11.103:9092,INTERNAL://192.168.11.103:9093
内网访问可以使用:192.168.11.103:9093
外网访问使用:192.168.11.103:9092
这在kafka部署到kubernetes时候就很有用了