我想在Docker Compose中运行的Kafka设置中为Kafka代理添加SSL加密。目前我已经配置了broker,例如:
environment:
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://localhost:9094"
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 3
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_MIN_INSYNC_REPLICAS: 2
我已经从nginx为每个Kafka节点分配了单独的DNS,它工作正常。但是,当我禁用端口9092-9097时,问题就出现了。在这种情况下,我们会遇到“no broker available”错误。应通过端口443进行连接。
我想使用端口443配置对Kafka节点的访问,而不是允许单个端口
1条答案
按热度按时间xnifntxz1#
Docker在这里并不重要,Nginx也不“做DNS”。
Kafka不是一个HTTPS服务,所以使用端口443只是令人困惑。此外,Kafka客户端必须连接到单独的代理,因此Nginx不应该反向代理它们。
如果你想要一个HTTPS接口,那么运行Kafka REST Proxy项目,然后你可以将Nginx或其他解决方案(如Apache Knox)指向该接口进行身份验证。然后,您可以选择只公开HTTP服务器并在那里终止TLS,然后通过PLAINTEXT流量转发到代理。注意:这将比原始的Kafka客户端协议慢,因为您将引入瓶颈/单点故障。