我是卡夫卡的新手。我正在尝试使用分配给该主题的1个主题和1个使用者组来实现简单的排队系统。但是我无法弄清楚如何创建一个消费者群体。
P.S。我正在使用Ruby,使用kafka-rb gem。
谢谢! 埃里克
答案 0 :(得分:1)
我一直在寻找相同的东西,我不认为它实际上是Kafka的一部分,而是Java驱动程序与ZooKeeper一起使用的东西。如果您阅读了Kafka 0.7(http://kafka.apache.org/07/design.html)的设计文档,那么有一个标题为“消费者和消费者群体”的部分,他们会对此进行讨论。这是有道理的,因为ZooKeeper可以很容易地用于跟踪一组消费者的最新偏移量。
答案 1 :(得分:1)
如果您查看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
答案 2 :(得分:0)
更新:我们(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
有关详细信息,另请参阅README。