【问题标题】:How to create Kafka consumer groups?如何创建 Kafka 消费组?
【发布时间】:2017-07-20 07:45:06
【问题描述】:

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

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

谢谢! 埃里克

【问题讨论】:

    标签: ruby apache-zookeeper apache-kafka


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如果你查看 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

        【讨论】:

          猜你喜欢
          • 2017-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多