首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用kafka-rb为客户端使用docker进行Kafka设置

使用kafka-rb为客户端使用docker进行Kafka设置
EN

Stack Overflow用户
提问于 2015-07-15 17:59:58
回答 1查看 441关注 0票数 1

我对Kafka完全是个新手,我很难正确理解它。

我使用docker -compose为docker设置了"wurstmeister/kafka-docker“:

代码语言:javascript
复制
zookeeper:
 image: wurstmeister/zookeeper
 ports: 
   - "2181:2181"
kafka:
 image: wurstmeister/kafka
 ports:
   - "9092:9092"
 links: 
   - zookeeper:zk
 environment:
   KAFKA_ADVERTISED_HOST_NAME: 192.168.59.103
   # KAFKA_AUTO_CREATE_TOPCIS_ENABLE: 'true'
   KAFKA_CREATE_TOPICS: "events:1:1"
 volumes:
   - /var/run/docker.sock:/var/run/docker.sock

作为生产者和消费者,我使用的是ruby gem "kafka-rb“。

制片人:

代码语言:javascript
复制
require 'kafka'
producer = Kafka::Producer.new({
    host: "192.168.59.103",
    port: 9092,
    topic: "events"
})

1000000.times do |i|
    message = Kafka::Message.new("Message #{i}")
    producer.push(message)
end

消费者:

需要'kafka‘

代码语言:javascript
复制
consumer = Kafka::Consumer.new({
    host: "192.168.59.103",
    port: 9092,
    topic: "events"
})

consumer.loop do |messages|
    puts "Received"
    puts messages
end

但我仍然收到拒绝连接或错误:

代码语言:javascript
复制
[2015-07-15 09:50:49,769] ERROR Closing socket for /192.168.59.3 because of error (kafka.network.Processor)
kafka_1     | java.nio.BufferUnderflowException
kafka_1     |   at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:145)
kafka_1     |   at java.nio.ByteBuffer.get(ByteBuffer.java:692)
kafka_1     |   at kafka.api.ApiUtils$.readShortString(ApiUtils.scala:38)
kafka_1     |   at kafka.api.LeaderAndIsrRequest$.readFrom(LeaderAndIsrRequest.scala:108)
kafka_1     |   at kafka.api.RequestKeys$$anonfun$5.apply(RequestKeys.scala:43)
kafka_1     |   at kafka.api.RequestKeys$$anonfun$5.apply(RequestKeys.scala:43)
kafka_1     |   at kafka.network.RequestChannel$Request.<init>(RequestChannel.scala:50)
kafka_1     |   at kafka.network.Processor.read(SocketServer.scala:450)
kafka_1     |   at kafka.network.Processor.run(SocketServer.scala:340)
kafka_1     |   at java.lang.Thread.run(Thread.java:701)

设置中有什么根本的问题吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-10-05 13:28:35

这个错误是什么时候发生的,运行wurstmeister/zookeeper图像时,或者当你试图产生或消费消息时。

为什么它报告Closing socket for /192.168.59.3,它应该是192.168.59.103,你可以在你运行生产者和消费者的地方尝试ping或telnet kafka服务器,看看你是否可以连接到它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31427267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档