【问题标题】:Requiring public IP address for kafka running on EC2在 EC2 上运行的 kafka 需要公共 IP 地址
【发布时间】:2019-04-04 18:49:58
【问题描述】:

我们在单个 AWS EC2 实例上安装了 kafka 和 zookeeper。我们有 kafka 生产者和消费者在不同的 ec2 实例上运行,这些实例位于同一 VPC 上,并且具有与 kafka 实例相同的安全组。在生产者或消费者配置中,我们使用 kafka 服务器的内部 IP 地址连接到它。

但我们注意到,我们需要提及 EC2 服务器的公共 IP 地址作为adverted.listeners,以便让生产者和消费者连接到 Kafka 服务器:

advertised.listeners=PLAINTEXT://PUBLIC_IP:9092

此外,我们还必须将公共 IP 地址列入白名单,并在运行生产者和消费者的每台 ec2 服务器的 9092 端口上开放流量。

我们希望流量使用内部 IP 地址流动。有没有一种方法我们不需要将公共 IP 地址列入白名单并在 9092 端口上为每个运行生产者或消费者的服务器打开流量?

【问题讨论】:

    标签: amazon-ec2 apache-kafka


    【解决方案1】:

    如果您不想为任何一个服务器开放对所有服务器的访问,我建议在您的应用程序服务器前面添加一个适当的高性能 Web 服务器,如 nginx 或 Apache HTTPD,作为反向代理。通过这种方式,您还可以添加 SSL 加密,并且您的服务器保留在专用网络上,而只有 Web 服务器会被公开。这非常简单,您可以找到许多有关如何设置它的教程。喜欢这个:http://webapp.org.ua/sysadmin/setting-up-nginx-ssl-reverse-proxy-for-tomcat/

    【讨论】:

      【解决方案2】:

      由于 kafka 可能需要工作的生态系统的可变性,只有明确声明 kafka 可以使用的位置才有意义。确保可以通过 IP 地址访问任何系统的外部部分的唯一方法是确保您使用的是外部 IP 地址。

      【讨论】:

        猜你喜欢
        • 2015-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-10
        • 2016-12-05
        • 1970-01-01
        • 2021-12-22
        • 2020-02-19
        相关资源
        最近更新 更多