hum*_*bee 6 apache-kafka docker docker-compose
我在 ubuntu 14.04 LTS 机器上运行 wurstmeister/kafka。Kafka 容器运行良好。但是我无法将我的微服务连接到这个容器。
卡夫卡 docker-compose.yml:
version: '2'
services:
zookeeper:
image: user1/zookeeper:3.4.9
ports:
- "2181:2181"
kafka:
image: my-kafka
ports:
- "9092:9092"
hostname: kafka-01
environment:
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ADVERTISED_HOST_NAME: "kafka-01"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "topic1:1:1,topic2:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)
docker-compose 用于微服务(myapp):
version: '2'
services:
myapp:
network_mode: 'bridge'
extends:
file: myapp.base.yml
service: myapp
links:
- kafka
zookeeper:
network_mode: 'bridge'
extends:
file: zookeeper.yml
service: zookeeper
kafka:
network_mode: 'bridge'
extends:
file: kafka.yml
service: kafka
links:
- zookeeper
Run Code Online (Sandbox Code Playgroud)
我在环境中链接了 kafka:
kafkaHost=kafka-01:9092
Run Code Online (Sandbox Code Playgroud)
请让我知道我做错了什么或者是否需要更多信息。提前致谢。
小智 4
主机名应该是您在“链接”中指定的内容,即。“卡夫卡”。正如 @dnephin 所说,不需要主机名。我认为你想要的实际上是 KAFKA_ADVERTISED_HOST_NAME 环境变量。
你有什么版本的docker?我在 Mac OS 上使用 docker 1.12.3 没有任何问题。
您可能还想尝试 Confluence docker 镜像:
这是我的示例 docker compose 文件:
version: "2"
services:
web:
image: nginx:latest
links:
- kafka
zookeeper:
extends:
file: kafka-services.yml
service: zookeeper
kafka:
extends:
file: kafka-services.yml
service: kafka
depends_on:
- zookeeper
Run Code Online (Sandbox Code Playgroud)
我的基本 kafka 服务撰写文件 (kafka-services.yml):
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
ports:
- "32181:32181"
environment:
ZOOKEEPER_CLIENT_PORT: 32181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:latest
ports:
- "29092:29092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:32181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2518 次 |
最近记录: |