Docker macos上公布的\u侦听器存在问题
我在Mac电脑上用这个Docker macos上公布的\u侦听器存在问题,docker,apache-kafka,kafkacat,Docker,Apache Kafka,Kafkacat,我在Mac电脑上用这个docker compose.yml启动卡夫卡: mydb: [...] environment: kafka_bootstrap_servers: kafka:9093 kafka: image: wurstmeister/kafka:2.13-2.6.0 ports: - "9092:9092" environment: KAFKA_CREATE_TOPICS: "m
docker compose.yml
启动卡夫卡:
mydb:
[...]
environment:
kafka_bootstrap_servers: kafka:9093
kafka:
image: wurstmeister/kafka:2.13-2.6.0
ports:
- "9092:9092"
environment:
KAFKA_CREATE_TOPICS: "mytopic:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
#KAFKA_LISTENERS: PLAINTEXT://:9092
#KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_LISTENERS: LISTENER_INTERN://:9093,LISTENER_EXTERN://127.0.0.1:9092
KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://:9093,LISTENER_EXTERN://127.0.0.1:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_EXTERN
KAFKA_BROKER_ID: 1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
我有两个监听器,因为还有第二个容器mydb
,它不能与PLAINTEXT://127.0.0.1:9092
监听器一起工作
事实上,使用
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
与卡夫卡卡特一起工作。但是另一个容器无法连接到卡夫卡
现在我想通过
kafkacat -b 127.0.0.1:9092 -t mytopic -L
但它给出了这个错误
%6|1605191095.939|FAIL|rdkafka#producer-1| [thrd:127.0.0.1:9092/bootstrap]:
127.0.0.1:9092/bootstrap:
Disconnected while requesting ApiVersion: might be caused by incorrect security.protocol configuration
(connecting to a SSL listener?) or broker version is < 0.10 (see api.version.request) (after 2ms in state APIVERSION_QUERY)
我做错了什么?我反复使用了您的特定示例,但无法使其发挥作用 值得一提的是,我如何在Docker本地运行Kafka,并且可以从主机和其他容器访问它
如果您想继续使用现有方法并对其进行进一步调试,您可能会发现它很有用。我使用了您的特定示例,但无法使其正常工作 值得一提的是,我如何在Docker本地运行Kafka,并且可以从主机和其他容器访问它
如果要继续使用现有方法并进一步调试它,您可能会发现它很有用。您只将外部侦听器设置为将内部绑定到容器,而不允许远程连接 你需要
KAFKA_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://127.0.0.1:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INTERN
您只将外部侦听器设置为将内部绑定到容器,不允许远程连接 你需要
KAFKA_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://0.0.0.0:9092
KAFKA_ADVERTISED_LISTENERS: LISTENER_INTERN://kafka:9093,LISTENER_EXTERN://127.0.0.1:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_INTERN:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_INTERN
伟大的现在工作。我使用了你的设置,我想这是重点,不是wurstmeister的图片。同样,对我们有用。我们交换了
debezium/kafka
图像,使其与本地python应用程序一起工作:9092用于主机上的python,29092用于内部docker网络(connect等)。太棒了!现在工作。我使用了你的设置,我想这是重点,不是wurstmeister的图片。同样,对我们有用。我们交换了debezium/kafka
图像,使其与本地python应用程序一起工作:9092用于主机上的python,29092用于内部docker网络(connect等)。