The KAFKA_CFG_LISTENERS environment variable does not configure a secure listener. Set the environment variable ALLOW_PLAINTEXT_LISTENER=yes to allow the container to be started with a plaintext listener. This is only recommended for development.
时间: 2024-03-16 12:44:51 浏览: 147
这个错误是因为你设置了 `KAFKA_CFG_LISTENERS` 环境变量,但是没有配置安全监听器,导致出现了错误。
如果你需要使用安全监听器,需要在 `server.properties` 文件中进行相应的配置。具体操作如下:
1. 在 `server.properties` 文件中添加以下内容:
```
listeners=SSL://your.hostname:9092
ssl.endpoint.identification.algorithm=
ssl.client.auth=required
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=your-truststore-password
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=your-keystore-password
ssl.key.password=your-key-password
```
其中,`your.hostname` 是你的 Kafka 服务器的主机名,`/path/to/truststore.jks` 和 `/path/to/keystore.jks` 分别是你的信任库和密钥库的路径,`your-truststore-password`、`your-keystore-password` 和 `your-key-password` 分别是对应的密码。
2. 启动 Kafka 时,设置 `KAFKA_OPTS` 环境变量,指定 SSL 配置文件的路径:
```
KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_jaas.conf -Djava.security.krb5.conf=/path/to/krb5.conf -Djavax.net.ssl.keyStore=/path/to/keystore.jks -Djavax.net.ssl.keyStorePassword=your-keystore-password -Djavax.net.ssl.trustStore=/path/to/truststore.jks -Djavax.net.ssl.trustStorePassword=your-truststore-password"
```
如果你不需要使用安全监听器,可以设置 `ALLOW_PLAINTEXT_LISTENER=yes` 环境变量来允许以明文方式启动 Kafka 容器,但这只适用于开发环境,不推荐在生产环境中使用。
阅读全文