【问题标题】:Kafka - Consumer group creation with specific offset?Kafka - 具有特定偏移量的消费者组创建?
【发布时间】:2015-03-25 05:26:06
【问题描述】:

在 Kafka 中创建主题后,您可以创建任意数量的消费者组,只需尝试使用这些组来读取主题。

我想创建一个额外的消费者组来监控真实消费者组的消息内容——一个用来偷看他们的消息的。因此,GUI 将允许您在任何消费者组上单击“peek”,“peeker”组会将其偏移量更新为被监控组的偏移量,然后它会显示来自该偏移量的消息。

但我很困惑,因为您不能在第一次明确创建消费者组;您似乎必须阅读一条消息才能获取在 zookeeper 中创建的偏移节点。

我的问题

有没有办法显式创建指向特定偏移量的消费者组,或者是否可以为尚未使用的消费者组手动创建zookeeper节点,以便将其初始化为正确的偏移值?还是这种自动创建会扰乱消费者组分配过程?

【问题讨论】:

    标签: java apache-zookeeper apache-kafka kafka-consumer-api


    【解决方案1】:

    对于读者,不再支持 Kafka Web Console。请考虑使用Kafka Manager

    【讨论】:

      【解决方案2】:

      您可以查看 Kafka Web Console 项目,该项目已经做了与您描述的类似的事情。

      如果您想自己执行此操作,则需要使用简单的消费者 API 并手动处理新消费者组的偏移量(存储在 Zookeeper 或其他地方)。您可以从现有消费者组获取当前偏移量,然后使用与您的 peek 组相同的偏移量读取消息。只要 group id 不同,就不能互相干扰或搞砸。

      【讨论】:

        【解决方案3】:

        如上所述,Kafka Manager 的界面非常漂亮,值得您花时间进行设置。但是如果你想要 CLI 版本,正如我所需要的,下面应该可以工作:

        groupId="legitGroupId"
        kafka="localhost:9092"
        declare -a topics=(
            "topic1" 
            "topic2"
            )
        
        # Create a single consumer of all the topics which starts starts at each topics latest offset
        # Use --dry-run instead of --execute to see how the end results will look
        for topic in "${topics[@]}"; do
            echo "Adding consumer to $topic"
            kafka-consumer-groups --bootstrap-server $kafka --topic $topic --group $groupId --execute --reset-offsets --to-latest
            echo ""
        done
        

        【讨论】:

          猜你喜欢
          • 2019-05-01
          • 1970-01-01
          • 2020-07-20
          • 2017-07-22
          • 1970-01-01
          • 2018-12-17
          • 2020-05-31
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多