gpt4 book ai didi

ssl - 无法使用 SSL 找出 Kafka 中 inter.broker.listener.name 的设置

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:28 27 4
gpt4 key购买 nike

我正在尝试使用 SSL (TLS) 节点间以及节点和客户端之间的 SSL (TLS) 配置 Kafka 节点,但遇到了配置问题。卡夫卡版本是2.3.0。我的相关设置是:

      - KAFKA_BROKER_ID=1
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_LISTENERS=LISTENER_INTERNAL://kafka1:9092,LISTENER_EXTERNAL://kafka1:29092
- KAFKA_ADVERTISED_LISTENERS=LISTENER_INTERNAL://kafka1:9092,LISTENER_EXTERNAL://localhost:29091
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=LISTENER_INTERNAL:SSL,LISTENER_EXTERNAL:SSL
- KAFKA_ZOOKEEPER_CONNECT=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
- KAFKA_AUTO_CREATE_TOPICS_ENABLE=false
- KAFKA_SSL_TRUSTSTORE_LOCATION=/var/private/ssl/server.truststore.jks
- KAFKA_SSL_TRUSTSTORE_PASSWORD=changeit
- KAFKA_SSL_KEYSTORE_LOCATION=/var/private/ssl/server.keystore.jks
- KAFKA_SSL_KEYSTORE_PASSWORD=changeit
- KAFKA_SSL_KEY_PASSWORD=changeit
- KAFKA_SECURITY_INTER_BROKER_PROTOCOL=SSL
- KAFKA_SSL_CLIENT_AUTH=required

仅供引用,为简单起见,我从实例化 Kafka 容器的 docker-compose 文件中复制了设置。环境变量 1:1 映射到 server.properties 中的属性。在容器启动期间,这些设置将应用于 server.properties 文件。

当我开始使用此配置时,我收到以下错误消息:

java.lang.IllegalArgumentException: requirement failed: inter.broker.listener.name must be a listener name defined in advertised.listeners. The valid options based on currently configured listeners are LISTENER_INTERNAL,LISTENER_EXTERNAL

当我将 inter.broker.listener.name 属性设置为 INTERNAL_LISTENERSSLnull或空字符串,我收到此错误消息:

org.apache.kafka.common.config.ConfigException: Only one of inter.broker.listener.name and security.inter.broker.protocol should be set.

我在这个问题上花了几个小时。我已将我的设置与 Web 上的几个示例进行了比较,这些示例应该使用 SSL 配置来演示 Kafka。

有什么想法吗?

最佳答案

我终于想出了如何拥有多个 SSL 监听器。我会在这里记录下来以防其他人遇到同样的问题,因为多个 SSL 监听器的工作示例似乎很少甚至不存在。下面是我的工作配置(只显示从 docker-compose 传递的相关属性):

ALLOW_PLAINTEXT_LISTENER=no
KAFKA_LISTENERS=ISSL://kafka1:9092,OSSL://kafka1:29092
KAFKA_ADVERTISED_LISTENERS=ISSL://kafka1:9092,OSSL://localhost:29092
KAFKA_INTER_BROKER_LISTENER_NAME=ISSL
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=ISSL:SSL,OSSL:SSL
KAFKA_SSL_CLIENT_AUTH=required

这样做的关键是不要配置 KAFKA_SECURITY_INTER_BROKER_PROTOCOL,因为它与 KAFKA_INTER_BROKER_LISTENER_NAME 键互斥。

在多个监听器的情况下,KAFKA_LISTENER_SECURITY_PROTOCOL_MAPKAFKA_INTER_BROKER_LISTENER_NAME 的组合似乎是必需的。

关于ssl - 无法使用 SSL 找出 Kafka 中 inter.broker.listener.name 的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57596834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com