Kafka docker-NoSuchFileException:/opt/kafka.server.keystore.jks
我已经通过docker安装了Kafka。 当我运行docker-compose up命令时,我遇到以下错误:
[2022-02-28 08:13:24,185] INFO Awaiting socket connections on localhost:9092. (kafka.network.Acceptor)
kafka | [2022-02-28 08:13:24,216] ERROR Modification time of key store could not be obtained: /opt/kafka.server.keystore.jks (org.apache.kafka.common.security.ssl.DefaultSslEngineFactory)
kafka | java.nio.file.NoSuchFileException: /opt/kafka.server.keystore.jks
kafka | at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
kafka | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
kafka | at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
kafka | at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
kafka | at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
kafka | at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
kafka | at java.nio.file.Files.readAttributes(Files.java:1737)
kafka | at java.nio.file.Files.getLastModifiedTime(Files.java:2266)
kafka | at org.apache.kafka.common.security.ssl.DefaultSslEngineFactory$FileBasedStore.lastModifiedMs(DefaultSslEngineFactory.java:383)
ERROR Modification time of key store could not be obtained: /opt/kafka.server.keystore.jks
Failed to load SSL keystore /opt/kafka.server.keystore.jks of type JKS
下面是我的docker-compose.yml文件:
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
depends_on:
- zookeeper
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: 'SSL://localhost:9092'
KAFKA_LISTENERS: 'SSL://localhost:9092'
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_SSL_KEYSTORE_LOCATION: '/opt/kafka.server.keystore.jks'
KAFKA_SSL_KEYSTORE_PASSWORD: 'changeit'
KAFKA_SSL_KEY_PASSWORD: 'changeit'
KAFKA_SSL_TRUSTSTORE_LOCATION: '/home/ubuntu/kafka.server.truststore.jks'
KAFKA_SSL_TRUSTSTORE_PASSWORD: 'changeit'
KAFKA_SECURITY_INTER_BROKER_PROTOCOL: 'SSL'
volumes:
- ./server_certs:/certs
解决方案
将变量值更改为使用/certs
version: '3'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
depends_on:
- zookeeper
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_LISTENERS: 'SSL://localhost:9092'
KAFKA_LISTENERS: 'SSL://localhost:9092'
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_SSL_KEYSTORE_LOCATION: '/certs/kafka.server.keystore.jks'
KAFKA_SSL_KEYSTORE_PASSWORD: 'changeit'
KAFKA_SSL_KEY_PASSWORD: 'changeit'
KAFKA_SSL_TRUSTSTORE_LOCATION: '/certs/kafka.server.truststore.jks'
KAFKA_SSL_TRUSTSTORE_PASSWORD: 'changeit'
KAFKA_SECURITY_INTER_BROKER_PROTOCOL: 'SSL'
volumes:
- ./server_certs:/certs
相关文章