6

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

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

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

我的问题

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

4

3 回答 3

4

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

于 2016-02-12T18:47:29.420 回答
2

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

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

于 2015-01-26T20:56:56.253 回答
1

如上所述,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-06-18T21:43:53.100 回答