1

我是卡夫卡的新手。我正在尝试使用 1 个主题和分配给该主题的 1 个消费者组来实现一个简单的排队系统。但是我不知道如何创建一个消费者组。

ps 我正在使用带有 kafka-rb gem 的 Ruby。

谢谢!埃里克

4

3 回答 3

2

更新:我们(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

另请参阅自述文件以获取更多信息。

于 2017-06-07T13:16:10.193 回答
1

我一直在寻找同样的东西,我不认为它实际上是 Kafka 的一部分,而是 Java 驱动程序与 ZooKeeper 结合使用的东西。如果您阅读 Kafka 0.7 ( http://kafka.apache.org/07/design.html ) 的设计文档,底部有一个标题为“消费者和消费者群体”的部分,他们在其中讨论了一些内容。这是有道理的,因为 ZooKeeper 可以很容易地用于跟踪一组消费者的最新偏移量。

于 2013-05-08T22:59:00.097 回答
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

于 2016-10-05T05:44:50.653 回答