从docker主机外部与kafka docker容器进行交互

编程入门 行业动态 更新时间:2024-10-24 04:29:33
本文介绍了从docker主机外部与kafka docker容器进行交互的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我建立了一个kafka docker容器,并使用docker-compose对其进行编排.

致电docker ps我得到以下putput:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bde6f76246e hieutrtr/docker-kafka:0.0.1 "/start.sh" About an hour ago Up About an hour 7203/tcp, 0.0.0.0:32884->9092/tcp dockerkafka_kafka_3 be354f1b8cc0 hieutrtr/docker-ubuntu:devel "/usr/bin/supervisor About an hour ago Up About an hour 22/tcp producer1 50d3203af90e hieutrtr/docker-kafka:0.0.1 "/start.sh" About an hour ago Up About an hour 7203/tcp, 0.0.0.0:32883->9092/tcp dockerkafka_kafka_2 61b285f39615 hieutrtr/docker-kafka:0.0.1 "/start.sh" 2 hours ago Up 2 hours 7203/tcp, 0.0.0.0:32882->9092/tcp dockerkafka_kafka_1 20c9c5ccec05 jplock/zookeeper:3.4.6 "/opt/zookeeper/bin/ 2 hours ago Up 2 hours 2888/tcp, 3888/tcp, 0.0.0.0:32881->2181/tcp dockerkafka_zookeeper_1

我可以在docker容器内部运行生产者和使用者,但是不能在docker网络外部运行.

例如:

我在本地主机上运行kafka生产者,并出现以下错误:

$ kafka_2.9.1-0.8.2.1: bin/kafka-console-producer.sh --topic test --broker-list $DOCKER_HOST:32884 [2015-08-31 06:55:15,450] WARN Property topic is not valid (kafka.utils.VerifiableProperties) to [2015-08-31 06:55:20,214] WARN Failed to send producer request with correlation id 2 to broker 1 with data for partitions [test,0] (kafka.producer.async.DefaultEventHandler) java.nio.channels.ClosedChannelException at kafkawork.BlockingChannel.send(BlockingChannel.scala:100) at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73) at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:72) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103)

这是我在github上的kafka docker示例,其中包括上述问题.

那么,有人遇到同样的问题并且可以以任何方式帮助我吗?

其他信息:

(仅来自ches/kafka的分叉,并为docker-compose修改一些内容):

解决方案

在Kafka服务器属性中,您需要将advertised.host.name和advertised.port设置为正在运行的容器的ip/端口,然后它才能工作. >

I have built a kafka docker container and orchestrate it using docker-compose.

Calling docker ps I get the following putput:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bde6f76246e hieutrtr/docker-kafka:0.0.1 "/start.sh" About an hour ago Up About an hour 7203/tcp, 0.0.0.0:32884->9092/tcp dockerkafka_kafka_3 be354f1b8cc0 hieutrtr/docker-ubuntu:devel "/usr/bin/supervisor About an hour ago Up About an hour 22/tcp producer1 50d3203af90e hieutrtr/docker-kafka:0.0.1 "/start.sh" About an hour ago Up About an hour 7203/tcp, 0.0.0.0:32883->9092/tcp dockerkafka_kafka_2 61b285f39615 hieutrtr/docker-kafka:0.0.1 "/start.sh" 2 hours ago Up 2 hours 7203/tcp, 0.0.0.0:32882->9092/tcp dockerkafka_kafka_1 20c9c5ccec05 jplock/zookeeper:3.4.6 "/opt/zookeeper/bin/ 2 hours ago Up 2 hours 2888/tcp, 3888/tcp, 0.0.0.0:32881->2181/tcp dockerkafka_zookeeper_1

I can run a producer and a consumer from inside the docker container, but it is not working from outside the docker network.

For example:

I run a kafka producer on my localhost and the following error appears:

$ kafka_2.9.1-0.8.2.1: bin/kafka-console-producer.sh --topic test --broker-list $DOCKER_HOST:32884 [2015-08-31 06:55:15,450] WARN Property topic is not valid (kafka.utils.VerifiableProperties) to [2015-08-31 06:55:20,214] WARN Failed to send producer request with correlation id 2 to broker 1 with data for partitions [test,0] (kafka.producer.async.DefaultEventHandler) java.nio.channels.ClosedChannelException at kafkawork.BlockingChannel.send(BlockingChannel.scala:100) at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:73) at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:72) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103) at kafka.producer.SyncProducer$$anonfun$send$1$$anonfun$apply$mcV$sp$1.apply(SyncProducer.scala:103)

This is my kafka docker example on github that includes the mentioned problem.

So, is anyone experiencing the same problems and can help me in any way?

Additional info:

(Just fork from ches/kafka and modify something for docker-compose) :

解决方案

In the Kafka server properties you need to set advertised.host.name and advertised.portto the ip/port of your running container and then it should work.

更多推荐

从docker主机外部与kafka docker容器进行交互

本文发布于:2023-10-07 12:56:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1469446.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:容器   主机   docker   kafka

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!