【发布时间】:2017-07-05 17:23:55
【问题描述】:
我正在尝试在 SSL [1-way] 模式下设置 kafka。我已经浏览了官方文档并成功生成了证书。我会记下两种不同情况的行为。此设置只有一个代理和一个动物园管理员。
案例 1:代理间通信 - 明文
我的server.properties文件中的相关条目如下:
listeners=PLAINTEXT://localhost:9092, SSL://localhost:9093
ssl.keystore.location=/Users/xyz/home/ssl/server.keystore.jks
ssl.keystore.password=****
ssl.key.password=****
我在 kafka 配置目录中添加了一个 client-ssl.properties,其中包含以下条目:
security.protocol=SSL
ssl.truststore.location=/Users/xyz/home/ssl/client.truststore.jks
ssl.truststore.password=****
如果我将bootstrap.servers=localhost:9093 或bootstrap.servers=localhost:9092 放在我的config/producer.properties 文件中,我的控制台生产者/消费者工作正常。这是预期的行为吗?如果是,那为什么?因为我专门尝试在 SSL 模式下从生产者/消费者连接到 localhost:9093。
案例 2:代理间通信 - SSL
我的server.properties文件中的相关条目如下:
security.inter.broker.protocol=SSL
listeners=SSL://localhost:9093
ssl.keystore.location=/Users/xyz/home/ssl/server.keystore.jks
ssl.keystore.password=****
ssl.key.password=****
我的client-ssl.properties 文件保持不变。我将bootstrap.servers=localhost:9093 放入producer.properties 文件中。现在,我的生产者/消费者都无法连接到 kafka。我收到以下消息:
WARN Error while fetching metadata with correlation id 0 : {test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
我做错了什么?
在所有这些情况下,我都使用以下命令来启动生产者/消费者:
./kafka-console-producer.sh --broker-list localhost:9093 --topic test --producer.config ../config/client-ssl.properties
./kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --consumer.config ../config/client-ssl.properties
【问题讨论】:
标签: ssl apache-kafka