【发布时间】:2018-06-21 07:39:27
【问题描述】:
我有 3 个 Kafka 代理运行在一个隔离的网络区域,我的客户端无法直接连接它们,所以我必须使用 VIP(虚拟 ip)来连接代理。
例如:
我的经纪人的 IP 是:10.5.1.5, 10.5.1.6, 10.5.1.7,
我的 VIP 的 ip 是:200.100.1.5, 200.100.1.6, 200.100.1.7,他们是一对一配对的。
所以当我将bootstrap列表指定为200.100.1.5时,集群响应我混合的VIP和Broker ip,例如:10.5.1.5, 10.5.1.6, 200.100.1.5, 200.100.1.6 ...,那么连接失败,因为我的程序无法到达broker的ip,只能到达贵宾。
我目前的配置如下,它同时响应IP和VIP:
listeners=INTERNAL://:9092,EXTERNAL_PLAINTEXT://:8080
advertised.listeners=EXTERNAL_PLAINTEXT://200.100.1.5:8080,INTERNAL://10.5.1.5:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT
inter.broker.listener.name=INTERNAL
请问如何让 Kafka 只响应 VIP 列表。
我已经找到答案了,可能是这样的:
advertised.listeners=PLAINTEXT://200.100.1.5:8080
listeners=PLAINTEXT://10.5.1.5:9092
And remove the listener.security and inter.broker.
【问题讨论】:
-
您的虚拟 IP 是在托管 kafka 的节点内实现的,还是在一些外部代理/路由器内实现的?即你的第一个 kafka 节点是否知道它在 200.100.1.5 上?
标签: apache-kafka