【发布时间】:2018-01-14 21:23:06
【问题描述】:
我正在尝试将 Kafka 主题连接到我的前端 Java Spring 应用程序。我正在使用 Docker Compose,并尝试使用两个不同的 Kafka 映像进行连接。
使用wurstmeister/kafka,我已经能够在我的docker.compose.yml 文件中通过此服务启动并运行Kafka 主题。但是我无法将创建的主题连接到我的前端 Java Spring 应用程序。
kafka:
image: wurstmeister/kafka:0.10.2.0
ports:
- "9092:9092"
expose:
- "9092"
- "2181"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_CREATE_TOPICS: "test-topic1:1:1, test-topic2:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
其次,对于spotify/kafka,我实际上很难用 Kafka 创建主题。在文档中,它正在寻找作为环境变量的主题,但以下docker-compose.yml 服务并未创建主题。我也尝试在test-topic 周围加上引号,但效果不佳。
kafka:
image: spotify/kafka
ports:
- "9092:9092"
- "2181:2181"
hostname: kafka
expose:
- "9092"
- "2181"
environment:
TOPICS: test-topic
不知道有没有必要,但是我整个docker-compose.yml文件如下,注意只有使用wurstmeister/kafka才需要zookeeper服务。
docker-compose.yml
version: '2'
services:
# zookeeper:
# image: wurstmeister/zookeeper
# ports:
# - "2181:2181"
kafka:
image: spotify/kafka
ports:
- "9092:9092"
- "2181:2181"
hostname: kafka
expose:
- "9092"
- "2181"
environment:
TOPICS: test-topic
redis:
image: redis
ports:
- "6379"
restart: always
kafka-websocket-connector:
build: ./kafka-websocket-connector
image: andrewterra/kafka-websocket-connector
ports:
- "8077:8077"
# - "9092:9092"
depends_on:
- kafka
- redis
# - zookeeper
links:
- kafka
- redis
【问题讨论】:
-
为什么不用
bin/kafka-topics --create命令行工具创建主题? Docker-compose 不能完全替代 Chef、Puppet、Ansible 或自定义部署脚本。
标签: docker apache-kafka docker-compose