无法在启用SSL的情况下向Kafka生成消息

pha*_*eim 9 security ssl apache-kafka

我在启用了SSL的情况下配置了kafka(1.0)并将侦听器属性添加为listeners=PLAINTEXT://:9092,SSL://:9093 And Advertised listenersadvertisted.listeners=PLAINTEXT://PUBLICIP:9092,SSL://PUBLICIP:9093

我能够使用9092端口生成消息,但在启用SSL的情况下无法生成9093.以下是我得到的错误

[2018-05-03 10:51:41,990] ERROR Error when sending message to topic test with key: null, value: 16 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
Run Code Online (Sandbox Code Playgroud)

org.apache.kafka.common.errors.TimeoutException:60000毫秒后无法更新元数据.

这是我正在使用的生产者命令

bin/kafka-console-producer.sh --broker-list PUBLICIP1:9093,PUBLICIP2:9093,PUBLICIP3:9093 --topic test --property security.protocol=SSL --producer.config ~/client.properties
Run Code Online (Sandbox Code Playgroud)

以下是client.properties中的条目

security.protocol=SSL
ssl.truststore.location=/home/ubuntu/kafka.client.truststore.jks
ssl.truststore.password=trustpassword
Run Code Online (Sandbox Code Playgroud)

小智 1

如果您使用 2.0+ 版本,下面是控制台生产者的命令

\n\n
kafka-console-producer \xe2\x80\x93broker-list kafka.example.com:9093 \xe2\x80\x93topic securing-kafka \xe2\x80\x93producer.config /etc/kafka/producer_ssl.properties\n
Run Code Online (Sandbox Code Playgroud)\n\n

Producer_ssl.properties

\n\n
bootstrap.servers=kafka.example.com:9093\nsecurity.protocol=SSL\nssl.truststore.location=/etc/security/tls/kafka.client.truststore.jks\nssl.truststore.password=test1234\nssl.keystore.location=/etc/security/tls/kafka.client.keystore.jks\nssl.keystore.password=test1234\nssl.key.password=test1234\n
Run Code Online (Sandbox Code Playgroud)\n