我是卡夫卡的新手。我正在尝试使用 1 个主题和分配给该主题的 1 个消费者组来实现一个简单的排队系统。但是我不知道如何创建一个消费者组。
ps 我正在使用带有 kafka-rb gem 的 Ruby。
谢谢!埃里克
我是卡夫卡的新手。我正在尝试使用 1 个主题和分配给该主题的 1 个消费者组来实现一个简单的排队系统。但是我不知道如何创建一个消费者组。
ps 我正在使用带有 kafka-rb gem 的 Ruby。
谢谢!埃里克
更新:我们(Zendesk)已经发布了Racecar,这是一个建立在 ruby-kafka 之上的简化的 Kafka 消费者框架。
Racecar 消费者看起来像这样:
# simple_consumer.rb
class SimpleConsumer < Racecar::Consumer
subscribes_to "some-topic"
def process(message)
puts message.value
end
end
为了运行它,只需执行以下命令:
$ gem install racecar
$ racecar --require my_consumer MyConsumer
在 Github 上阅读更多信息:https ://github.com/zendesk/racecar
原帖:
这是您在ruby-kafka中的操作方法:
require "kafka"
kafka = Kafka.new(seed_brokers: ["kafka1", "kafka2"])
consumer = kafka.consumer(group_id: "my-group")
consumer.subscribe("my-topic")
consumer.each_message do |message|
puts message.value
end
另请参阅自述文件以获取更多信息。
我一直在寻找同样的东西,我不认为它实际上是 Kafka 的一部分,而是 Java 驱动程序与 ZooKeeper 结合使用的东西。如果您阅读 Kafka 0.7 ( http://kafka.apache.org/07/design.html ) 的设计文档,底部有一个标题为“消费者和消费者群体”的部分,他们在其中讨论了一些内容。这是有道理的,因为 ZooKeeper 可以很容易地用于跟踪一组消费者的最新偏移量。
如果你查看 kafka 消费者的配置(http://kafka.apache.org/documentation.html),group.id
它是一个唯一的字符串,用于标识该消费者所属的消费者组。
默认情况下,它是“”
似乎kafka-rb
没有提供一种方法来做到这一点。但是其他一些宝石可以帮助您做到这一点,例如
https://github.com/zendesk/ruby-kafka#consumer-groups
https://github.com/karafka/karafka#group