开启Kafka与外界通信的端口

Open a port for Kafka communication to the outside-world

我在 Azure 中有一个 VM (Linux OS),上面有 Hortonworks,它启动了 Kafka。

我需要做什么才能从 VM 外部为 Kafka 通信设置正确的端口?

我认为这里的主要问题是 Kafka 正在侦听本地 IP 而不是 VM IP (WAN)。

任何帮助将不胜感激...

如果您已使用 Azure 资源管理器工作流创建 VM,您将拥有一个自动创建的网络安全组。您需要在 NSG 中创建规则以使 Kafka 可用。参见:https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/

如果你使用过Azure经典部署工作流,你需要定义一个端点来暴露Kafka。参见:https://azure.microsoft.com/fr-fr/documentation/articles/virtual-machines-windows-classic-setup-endpoints/

希望这对您有所帮助,

朱利安

你是否设置了 Kafka advertised.host.name 和 advertised.port 环境变量?这就是你向外界展示自己的方式。

()

对于最新版本的 Kafka(撰写本文时为 0.10.0),您根本不想使用 advertised.host.name。事实上,甚至 [documentation] 也声明 advertised.host.name 已被弃用。此外,Kafka 不仅会将其用作 producers/consumers 的 "advertised" 主机名,还会将其用作 其他代理 的主机名(在多代理环境中)。 ..如果您为经纪人使用不同的(可能是内部的)DNS,这会有点痛苦……而且您真的不想从事向个人添加条目的业务 /etc/hosts经纪人(呃!)

因此,基本上,您会希望代理使用内部名称,但对生产者和消费者使用外部 FQDN 。为此,您将改为更新 advertised.listeners