Ruby 未定义的方法';新';卡夫卡
我正在尝试运行卡夫卡消费者示例,可在此处找到: 这是我正在尝试运行的程序:Ruby 未定义的方法';新';卡夫卡,ruby,apache-kafka,Ruby,Apache Kafka,我正在尝试运行卡夫卡消费者示例,可在此处找到: 这是我正在尝试运行的程序: 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: consum
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'':卡夫卡的未定义方法“new”:模块(NoMethodError)
我在一些与完全不同的程序相关的问题中看到了未定义方法“new”
的这种错误,但似乎无法找出错误所在,因为我没有覆盖kafka类或任何内容。我使用sudo gem install kafka rb
kafka-rb-0.0.15版本在我的机器上安装了卡夫卡
有没有人知道为什么会出现这个问题以及如何解决这个问题 如评论中所述,您使用的是不再维护的
kafka rb
gem。但如果出于某种原因您想继续使用它,代码可能会如下所示:
require 'kafka'
consumer = Kafka::Consumer.new(topic: 'messages')
consumer.loop do |messages|
puts "Received"
puts messages
end
卡夫卡的未定义方法“new”:模块(NoMethodError)
:)和不一样。您正在使用kafka-rb
并阅读ruby-kafka
的文档。顺便说一句,我想转到ruby-kafka
(上次提交2天前),因为kafka-rb
似乎没有维护(上次提交2年前)@enginersmnky非常感谢您的帮助,我卸载了kafka-rb
并安装了ruby-kafka
,但现在我得到了错误'require':无法加载这样的文件--kafka(LoadError)
,您知道如何解决此错误吗?@Catherine此错误与您发布的内容无关,除非您使用的是非常旧的ruby版本。在这种情况下,它可能是哈希语法,但根据发布的代码无法判断。@engineersmnky您的建议是我使用ruby kafka
而不是kafka rb
我假设您会遇到由于此更改而发生的后续错误,因此我询问此新错误的原因