[英]Starting a Kafka topics using Docker Compose with spotify/kafka?
我正在尝试将 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
比较晚,但您可以使用以下内容来使用 shell 脚本来创建您的主题:
command: >
bash -c
"(sleep 15s &&
/opt/kafka_2.11-0.10.1.0/bin/kafka-topics.sh
--create
--zookeeper
localhost:2181 --replication-factor 1 --partitions 1
--topic my_topic &) && (supervisord -n)"
使用容器命令docker run --net=host --rm
。 在以下示例中,zookeeper 运行在端口22181
,请使用相应的主题名称,端口。
docker run --net=host --rm confluentinc/cp-kafka:4.0.0 kafka-topics --create --topic customer --partitions 1 --replication-factor 1 --if-not-exists --zookeeper localhost:22181
docker run --net=host --rm confluentinc/cp-kafka:4.0.0 kafka-topics --zookeeper localhost:22181 --topic customer --describe
docker run --net=host --rm confluentinc/cp-kafka:4.0.0 kafka-topics --list --zookeeper localhost:22181
docker run --net=host --rm confluentinc/cp-kafka:4.0.0 kafka-topics --delete --topic customer --zookeeper localhost:22181
TOPICS
环境变量仅用于kafkaproxy
映像。 https://github.com/spotify/docker-kafka#running-the-proxy
对于kafka
图像,您需要使用客户端创建主题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.