未定义的方法' new'卡夫卡

时间:2018-04-06 16:24:46

标签: ruby apache-kafka

我正在尝试运行此处找到的Kafka Consumer示例: http://www.rubydoc.info/gems/ruby-kafka/Kafka/Consumer

这是我试图运行的程序:

require "kafka"

kafka = Kafka.new(["kafka1:9092", "kafka2:9092"])

# Create a new Consumer instance in the group `my-group`:
consumer = kafka.consumer(group_id: "my-group")

# Subscribe to a Kafka topic:
consumer.subscribe("messages")

# Loop forever, reading in messages from all topics that have been
# subscribed to.
consumer.each_message do |message|
  puts message.topic
  puts message.partition
  puts message.key
  puts message.value
  puts message.offset
end

但每当我运行此程序时,我都会收到错误消息: example.rb:3:in '<main>': undefined method 'new' for Kafka:Module (NoMethodError)

我在一些与完全不同的节目相关的问题中看到了Undefined method 'new'的这种错误,但由于我没有覆盖卡夫卡课程,我似乎无法弄清楚出了什么问题。任何东西。我使用sudo gem install kafka-rb版本为kafka-rb-0.0.15在我的机器上安装了kafka。

有没有人知道问题发生的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

正如评论中所提到的,您正在使用不再维护的kafka-rb gem。但如果由于某种原因你想继续使用它,代码可能看起来像这样:

require 'kafka'
consumer = Kafka::Consumer.new(topic: 'messages')
consumer.loop do |messages|
    puts "Received"
    puts messages
end