我正在尝试运行此处找到的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。
有没有人知道问题发生的原因以及如何解决这个问题?
答案 0 :(得分:1)
正如评论中所提到的,您正在使用不再维护的kafka-rb
gem。但如果由于某种原因你想继续使用它,代码可能看起来像这样:
require 'kafka'
consumer = Kafka::Consumer.new(topic: 'messages')
consumer.loop do |messages|
puts "Received"
puts messages
end