我使用 macOS M1 Big Sur 11.2.3,但我的 kafka 无法正常运行,无法创建/列出主题。我不知道是不是操作系统的原因,但是kafka的日志只是这样:
docker-compose 日志 https://i.stack.imgur.com/6icAa.jpg
列出主题日志 https://i.stack.imgur.com/oEabD.png
这是我的码头工人组成:
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
hostname: zookeeper
ports:
- 2181:2181
environment:
ZOO_MY_ID: 1
networks:
- kafka_net
kafka:
image: wurstmeister/kafka
container_name: kafka
ports:
- 9092:9092
expose:
- 29092
depends_on:
- zookeeper
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9092
KAFKA_LISTENERS: INSIDE://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:29092,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_BROKER_ID: 1
restart: always
networks:
- kafka_net
networks:
kafka_net:
driver: bridge
我认为 kafka 尚未运行,所以我无法列出/创建主题。你们对此有什么想法吗?我已经搜索了这方面的可能性,但我仍然没有解决问题。谢谢
对于在 mac m1 上的 docker 中启动 kafka,我做了接下来的事情:
- 克隆 kafka 存储库并在我的 macbook pro m1 上构建(./gradlew clean releaseTarGz)
- 使用下一个结构创建 docker-compose 项目目录
- 配置服务器属性 file (根目录/kafka_m1/kafka/config/server.properties)。主要参数:
zookeeper.connect=zookeeper:2181
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://127.0.0.1:9092
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
- kafka`s Dockerfile (openjdk:15.0.2-jdk是为 m1 构建的):
FROM openjdk:15.0.2-jdk
WORKDIR /
COPY . /
EXPOSE 9092
EXPOSE 8092
EXPOSE 9092
EXPOSE 10092
EXPOSE 11092
EXPOSE 12092
ENTRYPOINT [ "/kafka/bin/kafka-server-start.sh", "/kafka/config/server.properties" ]
-
docker-compose.yml(我选择动物园管理员:3.7.0因为它有手臂构造):
version: "2"
services:
zookeeper:
image: zookeeper:3.7.0
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
build: ./kafka_m1
ports:
- "127.0.0.1:9092:9092"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- 启动 docker-compose 并构建 kafka_m1 镜像。
在 docker 中运行本地 kafka 的快速收据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)