Kafka - 具有特定偏移量的消费者群体创建?

时间:2015-01-26 18:19:12

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

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

我想创建一个额外的消费者群体来监控真实消费者群体的消息内容 - 一个用于查看他们的消息。因此,GUI可以让你点击" peek"任何消费者群体,以及" peeker" group将其偏移更新为受监视组的偏移量,然后它将显示该偏移量的消息。

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

我的问题

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

3 个答案:

答案 0 :(得分:3)

对于读者,不再支持Kafka Web控制台。请改为考虑Kafka Manager

答案 1 :(得分:2)

您可以查看Kafka Web Console项目,该项目已经执行了类似于您所描述的内容。

如果您想自己执行此操作,则需要使用简单的使用者API并手动处理新的使用者组(存储在Zookeeper或其他位置)的偏移量。您可以从现有的使用者组中获取当前偏移量,然后使用相同的偏移量读取消息。只要群体ID不同,它们就不应相互干扰或混乱。

答案 2 :(得分:0)

如上所述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
相关问题