我们如何在防火墙/代理后面配置 kafka 生产者?



我们在 AWS 上安装了单节点 kafka。我们能够在这种环境中运行 kafka 生产者和消费者。但是,当我们的客户尝试向我们的 kafka 代理发送消息(在 AWS 环境之外(时,他们的消息却卡在了防火墙上。

因此,客户端 kafka 生产者设置在防火墙/代理后面,我们的客户端在绕过代理后如何通过 kafka 发送消息。

首先检查问题是否确实是客户端防火墙问题,并且与不正确的代理设置(例如使用私有 AWS IP 作为通告的侦听器(或 AWS 安全规则(不允许外部计算机在端口 9092/9093 上进行连接(无关。最简单的检查方法是在没有防火墙的情况下从外部主机发布自己。

接下来,检查他们是否允许端口 9092(或您用于 Kafka 的任何端口(上的 TCP 连接通过其客户端防火墙。

如果无法在防火墙中打开此端口,则可以考虑将数据发送到端口 80 或 443 上的 TCP 代理(如 haproxy(,因为这些帖子通常是打开的。

如果这仍然不起作用,请考虑使用 HTTP(S( 代理(如 Confluent REST 代理(进行发布,因为它使用应遍历大多数客户端防火墙的标准 HTTP(S( 端口和协议。

最新更新