当使用者实例group.id重新启动时更改时,会对kafka性能产生任何影响。较旧的group.id会发生什么情况,它是否仍存在于代理内存中或何时将其删除?假设我有1000多个使用者实例,并且所有实例都在重启时动态分配了group.id。
可以为{log.retention.ms'}提供列表值。我可以将其设置为1毫秒吗?
答案 0 :(得分:1)
这将取决于您的消费者版本,因为kafka 0.9.0.1中引入了新的消费者api
存储在zookeeper中的旧消费者组将一直呆在那里,直到您明确删除它们为止
kafka-consumer-groups.sh --zookeeper <zookeeper> --list
kafka-consumer-groups.sh --zookeeper <zookeeper> --delete --group <group-name>
使用新api的消费组将在其最后提交的偏移量过期时自动删除(即,主题中不再可用)。 您可以使用
获取新的消费者组列表kafka-consumer-groups.sh --bootstrap-server <broker> --list --new-consumer
请注意,--new-consumer
已在kafka 2.0中删除。
另请参阅removing a kafka consumer group in zookeeper
性能问题将取决于您的使用者配置(auto.offset.reset
)和主题保留大小。如果将消费者配置为获取最新消息,则影响会很小,但是如果将消费者配置为获取最早的补偿,并且您的主题很大,则可能会出现问题。
如果您希望消费者在每次启动时都从头开始阅读,请浏览How to read data using Kafka Consumer API from beginning?
log.retention.ms
是将消息保留在kafka中的毫秒数。 1ms是有效值,但我不确定您是否真的想要。