KAFKA_ADVERTISED_HOST_NAME 的作用
时间: 2023-08-05 13:07:15 浏览: 84
`KAFKA_ADVERTISED_HOST_NAME` 是一个环境变量,它用于设置 Kafka 的公开主机名(或 IP 地址)。在 Docker 中运行 Kafka 时,Kafka 容器的主机名默认为容器 ID,这使得 Kafka 无法从外部访问。因此,我们需要将 `KAFKA_ADVERTISED_HOST_NAME` 设置为 Docker 主机的主机名或 IP 地址,以使 Kafka 可以从外部访问。
在上面的示例中,我们将 `KAFKA_ADVERTISED_HOST_NAME` 设置为 `localhost`,这意味着 Kafka 只能从 Docker 主机上的本地主机访问。如果您希望从其他主机访问 Kafka,则必须将其设置为 Docker 主机的公共 IP 地址或主机名。
相关问题
version: '3' services: kafka01: image: wurstmeister/kafka:latest ports: - 19092:9092 environment: - KAFKA_BROKER_ID=0 - KAFKA_ZOOKEEPER_CONNECT=192.168.233.129:12181 - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.233.129:19092 - KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 container_name: kafka01 tty: true restart: always 给坐上持久化
To add persistence to the Kafka container, you can add a volume to the `docker-compose.yml` file. Here's an updated version with persistence:
```yaml
version: '3'
services:
kafka01:
image: wurstmeister/kafka:latest
ports:
- 19092:9092
environment:
- KAFKA_BROKER_ID=0
- KAFKA_ZOOKEEPER_CONNECT=192.168.233.129:12181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.233.129:19092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
container_name: kafka01
tty: true
restart: always
volumes:
- ./kafka/data:/kafka/data
- ./kafka/logs:/kafka/logs
```
In this updated configuration, two volumes are added: `./kafka/data` and `./kafka/logs`. These volumes will map the Kafka container's data and logs directories to the corresponding directories on the host machine, allowing for persistence of data and logs even if the container is recreated.
Make sure to create the `kafka/data` and `kafka/logs` directories in the same location as your `docker-compose.yml` file before running `docker-compose up -d`.
kafka kraft docker compose环境变量配置
根据提供的引用内容,我理解您想了解如何在kafka kraft docker compose环境中配置环境变量。具体操作步骤如下:
1. 在docker-compose.yml文件中添加环境变量配置,例如:
```yaml
version: '3'
services:
kafka:
image: wurstmeister/kafka:2.13-2.7.0
container_name: kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
ports:
- "9092:9092"
depends_on:
- zookeeper
zookeeper:
image: wurstmeister/zookeeper:3.4.6
container_name: zookeeper
ports:
- "2181:2181"
```
在上述示例中,我们在kafka服务中添加了三个环境变量配置,分别为KAFKA_ADVERTISED_HOST_NAME、KAFKA_ADVERTISED_PORT和KAFKA_ZOOKEEPER_CONNECT。
2. 在kafka服务中使用环境变量,例如:
```yaml
version: '3'
services:
kafka:
image: wurstmeister/kafka:2.13-2.7.0
container_name: kafka
environment:
KAFKA_ADVERTISED_HOST_NAME: ${KAFKA_ADVERTISED_HOST_NAME}
KAFKA_ADVERTISED_PORT: ${KAFKA_ADVERTISED_PORT}
KAFKA_ZOOKEEPER_CONNECT: ${KAFKA_ZOOKEEPER_CONNECT}
ports:
- "${KAFKA_ADVERTISED_PORT}:${KAFKA_ADVERTISED_PORT}"
depends_on:
- zookeeper
zookeeper:
image: wurstmeister/zookeeper:3.4.6
container_name: zookeeper
ports:
- "2181:2181"
```
在上述示例中,我们使用了${}语法来引用环境变量。