Tag: apache kafka

卡夫卡docker工人 – 不能从docker集装箱外生产或消费

卡夫卡在docker集装箱工作正常。 我可以使用docker exec -it [container name] [kafkascript]并成功创build主题,生成/使用消息,但是当我使用本地kafka脚本从Docker容器之外进行尝试时,我只能创build和列出主题。 生成和使用消息会引发错误: 制作 : ~/development/lib/kafka/kafka_2.11-0.10.0.0$ bin/kafka-console-producer.sh –broker-list $(docker-machine ip kafka):9092 –topic test asdf [2016-09-18 10:13:48,999] ERROR Error when sending message to topic test with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) expired due to timeout while requesting metadata from brokers for test-0 消费: […]

如何在OS X上使用Docker运行Kafka?

几天前我试图在没有Docker的情况下运行Kafka,但是我失败了。 这是非常困难的设置。 所以,我决定使用Docker,然后我再次失败。 可能是什么问题呢? 我运行这些命令: git clone https://github.com/confluentinc/cp-docker-images cd cp-docker-images/examples/kafka-single-node docker-compose up 顺便说一句,这是我的: Docker版本:17.03.1-ce Docker组合版本:1.11.2,build dfed245 我在这里下载了OS X的新Docker。 SIDE注意: OS X的新Docker使用了与之前不同的体系结构,因此解决了OS X中Docker的许多以前的问题。 因此,我相信,Docker文档中讨论的大部分问题将更容易解决。 错误日志: kafka_1 | [2017-05-08 21:00:37,382] WARN [Controller-1-to-broker-1-send-thread], Controller 1 epoch 1 fails to send request (type: UpdateMetadataRequest=, controllerId=1, controllerEpoch=1, partitionStates={}, liveBrokers=(id=1, endPoints=(host=localhost, port=29092, listenerName=ListenerName(PLAINTEXT), securityProtocol=PLAINTEXT), rack=null)) to broker localhost:29092 (id: 1 rack: […]

如何在Docker上设置#Spark /#Kafka?

我正试图build立一个Docker机器来构build一个应用程序,并使用Spark和Kafka。 你有什么想法,我怎么能在Mac机上设置它。

将消息发布到docker中运行的Kafka

我在docker集装箱内运行卡夫卡。 我使用以下命令启动我的容器 docker run –rm -p 2181:2181 -p 9092:9092 -p 8081:8081 –env ADVERTISED_HOST=\`docker-machine ip \\`docker-machine active\\“ –env ADVERTISED_PORT=9092 -v /Users/abhishek.srivastava/MyProjects/KafkaTest/target/scala-2.11:/app -it — name kafka spotify/kafka bash 我已经写了一个简单的程序,我可以在容器中复制并执行它,它完美的工作。 object KafkaProducerString { def SendStringMessage(msg: String) : Unit = { val inputRecord = new ProducerRecord[String, String]("test", null, msg) val producer: KafkaProducer[String, String] = CreateProducerString val rm = producer.send(inputRecord).get(10, […]

对于基于Docker容器的实现,在同一个容器中运行一对Kafka服务器和Zookeeper服务器是否有意义?

我试图实现一个由kafka服务器的三个节点组成的kafka集群和使用docker容器的zookeeper服务器的三个节点,以下哪一个是首选的?或者两者都不是,首选方法是什么? 三个docker集装箱每个托pipe一个卡夫卡/动物园pipe理员服务器对 六个docker集装箱,其中三个用于卡夫卡服务器,另外三个用于动物园pipe理员服务器 我这样问,因为在我看来,像三节点Zookeeper集群只能存在单节点故障,而三节点Kafka集群可能存在双节点故障(您可能必须将主题复制因子设置为3)。 那么在不同的容器中运行它们是否更好呢? 说起来,启动一个新的Docker容器的代价是多less? 如果我build议为每个容器运行一个服务器,是否更倾向于为每种服务器构build一个定制的Docker镜像(在这种情况下,一个用于kafka的另一个Docker镜像,另一个用于zookeeper),或者为所有不同的统一镜像服务器? 我猜测为kafka和zookeeper创build两个单独的图像是没有意义的,但是如果我拥有所有不同种类的集群和服务器,则认为elasticsearch要模拟? 在什么时候开始有意义地创build不同的docker图像以便在单个项目中使用?

在一个Docker容器中运行两个进程,或者两个容器连接到同一个数据库?

我需要开发一个应用程序来监听一个kafka主题并将数据保存到一个数据库(cassandra)中。 这将是一个高密度的数据stream,所以保存数据将是资源昂贵。 数据保存后,将通过REST API进行查询和公开。 我看到两个选项,但是它们都有缺点: 选项1 创build两个服务,每个服务在一个单独的泊坞窗容器中。 一个只能运行python中的kafka监听器进程,另一个运行烧瓶web服务器。 优点 :每个容器只运行一个进程 缺点 :两种服务都连接到相同的数据库,根据微服务模式架构,这并不理想,因为服务并没有完全分离。 选项2 在一个容器中同时运行kafka监听器和Web服务。 优点 :只需一个服务即可连接到数据库。 缺点 :在一个docker集装箱中运行多个进程,其中一个(保存和更新)会比另一个更昂贵,所以不能一致地扩展。 还有另外一个不涉及到单一体系结构的方法吗? 或者哪一个是最佳实践?

在boot2docker的docker中运行kafka时使用JMX进行kafka监控

我正在试图让JMX监视工作来监视一个testingkafka实例。 我有kafka(ches / kafka)通过boot2docker在Docker中运行,但是我无法正确configurationJMX监视。 我做了一堆故障排除,我知道卡夫卡实例运行正常(消费者和生产者工作)。 当我尝试简单的JMX工具(jconsole和jvisualvm)并且都无法连接(不安全的连接错误,连接失败)时,问题就出现了。 configuration项注意:我连接到192.168.59.103(在运行'boot2docker ip'时发现virtualbox ip),ches / kafka docker / kafka实例使用端口7203作为JMX_PORT(在kafka启动日志中确认)。 使用jconsole,我连接到192.168.59.103:7203,那是什么时候发生错误。 任何帮助表示赞赏。

如何订购Docker容器的Kafka启动shell脚本?

我正在尝试装入一个Kafka服务器。 Kafka服务器的正常启动顺序如下所示: A: start Zookeeper server B: start Broker server C: create topic 项目A和B是长时间运行的过程。 而C需要等待B来运行。 所以我写了一个Dockerfile, ENTRYPOINT为上面的序列执行一个shell脚本: #!/bin/sh $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties & $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties & $KAFKA_HOME/bin/kafka-topics.sh –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic test_topic 不过,在运行由此构build的docker镜像时,我遇到了三个问题: Docker需要ENTRYPOINT进程长时间运行,而上面的脚本不需要。 (只要话题创作完成就退出) 代理服务器语句(第二个)是长时间运行的过程。 目前我不得不把它作为后台进程使用结束& ,因为否则后面的语句根本不执行。 (但是使它背景也有问题:主题创build立即执行,而代理服务器还没有准备好。) 我无法将代理服务器语句作为最后一个长时间运行的过程,因为主题创build语句必须在创build服务器之后。 什么可能是安排这个启动序列的一个好方法?

卡夫卡在docker工人不工作

我试图用wurstmeister\kafka-docker docker-compose来使用wurstmeister\kafka-docker图片,但是我在连接所有东西时遇到了实际的问题。 我查的所有post或者问题似乎没有任何问题,但是我坦白的说是输了。 (至less有两个问题试图解决这个问题) 我相信问题是我对docker的networking了解docker 。 所以问题是: 我可以从同一个kafka容器中进行消费和生产,但是当我尝试创build另一个容器时(或者使用我的笔记本电脑和python客户端),我得到了一些与advertised.host.name参数有关的错误(在图像中,这个参数是KAFKA_ADVERTISED_HOST_NAME ) 我已经尝试以很多方式设置这个variables,但它不起作用。 所以我正在寻找一个authorative答案(即如何自动设置这些参数,这是什么意思)如何设置docker-compose.yml 这是我的: zookeeper: image: wurstmeister/zookeeper ports: – "2181:2181" kafka: image: wurstmeister/kafka # hostname: kafka ports: – "9092" links: – zookeeper:zk environment: KAFKA_ADVERTISED_HOST_NAME: "kafka" KAFKA_ADVERTISED_PORT: "9092" KAFKA_ZOOKEEPER_CONNECT: "zk:2181" UPDATE 遵循@dnephin的build议,我修改了以下几行中的start-kafka.sh : … if [[ -z "$KAFKA_ADVERTISED_PORT" ]]; then export KAFKA_ADVERTISED_PORT=$(hostname -i) fi … 并从KAFKA_ADVERTISED_HOST_NAME: "kafka" docker-compose.yml移除KAFKA_ADVERTISED_HOST_NAME: […]

如何从外部访问docker中的JMX接口?

我正在试图远程监视docker中运行的JVM。 configuration如下所示: 机器1:在Ubuntu机器上的docker上运行一个JVM(在我的情况下,运行kafka) 本机的IP为10.0.1.201; 在Docker中运行的应用程序在172.17.0.85。 机器2:运行JMX监视 请注意,当我从机器2运行JMX监视时,它会失败,出现以下错误(注意:运行jconsole,jvisualvm,jmxtrans和node-jmx / npm:jmx时会发生同样的错误): 对于每个JMX监视工具,失败时的堆栈跟踪如下所示: java.rmi.ConnectException: Connection refused to host: 172.17.0.85; nested exception is java.net.ConnectException: Operation timed out at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) (followed by a large stack trace) 现在有趣的部分是当我运行相同的工具(jconsole,jvisualvm,jmxtrans和node-jmx / npm:jmx)在运行docker(从上面的机器1)的同一台机器上JMX监视工作正常。 我认为这表明我的JMX端口是活动的并且正常工作,但是当我从机器2远程执行JMX监控时,它看起来像JMX工具不能识别内部docker IP(172.17.0.85) 以下是JMX监视工作的计算机1上的相关(我认为)networkingconfiguration元素(请注意docker ip,172.17.42.1): docker0 Link encap:Ethernet HWaddr … inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr:… Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 […]