我的Kafka服务器在其他系统上运行。我试图通过提供运行Kafka服务器的机器的代理URL来从我的本地机器运行客户端。但不幸的是,我无法连接到kafka服务器。
server.properties
个文件具有以下属性:
group.initial.rebalance.delay.ms=0
listeners=SASL_PLAINTEXT://localhost:9093
advertised.listeners=SASL_PLAINTEXT://localhost:9093
#advertised.listeners=SASL_PLAINTEXT://10.97.123.52:9093
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
从本地计算机运行我的客户端时,我正在传递服务器计算机的代理URL,但无法连接:(。任何人都可以帮忙解决这个问题吗?
答案 0 :(得分:0)
有点简化,但......客户端首先连接到 bootstrap 服务器以获取元数据。基于该元数据,它将打开与代理的另一个TCP连接,该代理是客户想要与之交谈的主题/分区的领导者。
第一个连接是根据您设置的引导服务器地址完成的。第二个连接从元数据打开到地址。在您的情况下,元数据将包含advertised.listeners
字段中的地址,即localhost
。因此,客户端将尝试连接到localhost:9093
而不是您的经纪人。因此,您需要将advertised.listeners
设置为使用代理对客户端可见的地址。 (这可能是您的配置示例中注释掉的行?)
您还要将listener
字段设置为仅在localhost
上收听。因此无法从外部IP地址访问它。您必须更改它以侦听外部IP地址。最可能将其设置为以下值(即没有localhost
)应该有所帮助:
listeners=SASL_PLAINTEXT://:9093