要求在EC2上运行的kafka的公共IP地址

时间:2018-10-31 14:50:01

标签: amazon-ec2 apache-kafka

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

但是我们注意到,我们需要提及EC2服务器的公共IP地址,如advertised.listeners所示,以使生产者和消费者连接到Kafka服务器:

advertised.listeners=PLAINTEXT://PUBLIC_IP:9092

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

我们希望流量使用内部IP地址进行传输。对于我们运行生产者或消费者的每台服务器,我们是否有办法不必将公共IP地址列入白名单并在9092端口上打开流量?

2 个答案:

答案 0 :(得分:0)

如果您不想打开对其中任何一台服务器的访问权限,我建议在充当反向代理的应用程序服务器之前添加适当的高性能Web服务器,例如nginx或Apache HTTPD。这样,您还可以添加SSL加密,并且您的服务器位于专用网络上,而仅暴露Web服务器。这非常容易,您可以找到许多有关设置方法的教程。像这样一个:http://webapp.org.ua/sysadmin/setting-up-nginx-ssl-reverse-proxy-for-tomcat/

答案 1 :(得分:0)

由于卡夫卡可能需要在其中工作的生态系统具有可变性,因此只有在明确声明卡夫卡可以使用的位置时才有意义。确保可以通过IP地址访问任何系统外部组件的唯一方法是确保您使用的是外部IP地址。