首页 文章

如何创建Kafka消费者群体?

提问于
浏览
1

我是 Kafka 的新手 . 我正在尝试使用分配给该主题的1个主题和1个使用者组来实现简单的排队系统 . 但是我无法弄清楚如何创建一个消费者群体 .

附:我正在使用Ruby,使用kafka-rb gem .

谢谢!埃里克

3 回答

  • 0

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

    原帖:


    这里's how you' d在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 .

  • 1

    如果您查看kafka consumer(http://kafka.apache.org/documentation.html)的配置, group.id 是一个唯一字符串,用于标识此使用者所属的使用者组 . By default, it is ""

    似乎 kafka-rb 没有提供这样做的方法 . 但是其他一些宝石可以帮助你这样做https://github.com/zendesk/ruby-kafka#consumer-groups https://github.com/karafka/karafka#group

  • 1

    我一直在寻找同样的东西,我实际上并不是Kafka的一部分,而是Java驱动程序与ZooKeeper一起工作的东西 . 如果您阅读了Kafka 0.7(http://kafka.apache.org/07/design.html)的设计文档,那么有一个 Headers 为"Consumers and Consumer Groups"的部分,他们会在那里谈论它 . 这是有道理的,因为ZooKeeper可以很容易地用于跟踪一组消费者的最新偏移量 .

相关问题