实现 kafka 集群跨内外网访问

设置 Kafka 集群的内外网访问设置


# Listeners 是 Broker 监听的网卡IP
# Kafka 的配置文件 server.properties 记录了 Zookeeper 集群各节点的访问地址
# 但是并未设置 *Broker 地址。Kafka 节点启动后向 Zookeeper 注册自己的同时也会从其中获取兄弟节点的地址实现节点间通信
# 同样,客户端连接 Kafka 后返回给它的是集群各节点的访问地址,该地址也是从上面的 Zookeeper 中获得的
# 这个地址就是 Kafka 节点向 Zookeeper 注册时提供的 advertised.listeners。若没有就会使用 listeners 的值 ...
# 总结: advertised_listeners 是对外暴露的服务端口,真正建立连接用的是 listeners

# ------------------------------------------------------ 

# 例如 broker 节点通过NAT映射了外网IP,但其无法监听此IP(因不存在,启动会报错)
# 此时即可使用 advertised.listeners 进行设置,格式: listener_name://host_name:port,...
listeners=PLAINTEXT://192.168.0.1:9092            # 内
advertised.listeners=PLAINTEXT://101.89.0.1:9092  # 外

# 此时完整的客户端访问流程:
# 1.C端访问101.89.0.1:9092,被所在环境映射到内网 192.168.0.1:9092 的节点,并请求获得所有 brokers 地址
# 2.broker 从 Zookeeper 拿到自己和其他兄弟节点通过 advertised.listeners 注册的 101.89.0.1:9092 等外网地址并返回给客户端
# 3.客户端拿这些地址访问 kafka 集群,被各节点所在环境映射到其内网IP,访问成功 ...

# ------------------------------------------------------ Example

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
listeners=INTERNAL://192.168.0.1:9092,EXTERNAL://100.0.0.9:19092
advertised.listeners=INTERNAL://192.168.0.1:9092,EXTERNAL://100.0.0.9:19092
inter.broker.listener.name=INTERNAL


版权声明:本文为weixin_45015255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。