我是卡夫卡的新手。我試圖使用分配給該主題的1個主題和1個消費者組來實現簡單的排隊系統。但我無法弄清楚如何創建一個消費者羣體。如何創建卡夫卡消費者羣體?
p.s.我正在使用Ruby和kafka-rb gem。
謝謝! Eric
我是卡夫卡的新手。我試圖使用分配給該主題的1個主題和1個消費者組來實現簡單的排隊系統。但我無法弄清楚如何創建一個消費者羣體。如何創建卡夫卡消費者羣體?
p.s.我正在使用Ruby和kafka-rb gem。
謝謝! Eric
我在尋找同樣的東西,我不認爲它實際上是Kafka的一部分,而是Java驅動程序與ZooKeeper結合使用的東西。如果您閱讀Kafka 0.7的設計文檔(http://kafka.apache.org/07/design.html),可以在底部標題爲「消費者和消費者羣體」的部分談論它。這很有意義,因爲ZooKeeper可以很容易地用於跟蹤一組消費者的最新偏移量。
如果您查看卡夫卡消費者的配置(http://kafka.apache.org/documentation.html),則group.id
是標識此消費者所屬的消費者羣組的唯一字符串。 默認情況下,它是「」
似乎kafka-rb
沒有提供一種方式來做到這一點。 但一些其他的寶石可以幫助ü做到這一點像 https://github.com/zendesk/ruby-kafka#consumer-groups https://github.com/karafka/karafka#group
更新:我們(的Zendesk)以來發布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更多信息見。