Apache kafka 如果offset.retention.minutes=2,cleanup.policy=compact,kafka会删除提交的偏移量还是压缩它
我对卡夫卡不熟悉,但我知道卡夫卡将消费者补偿存储在\uu consumer\u offset主题和offset.retention.minutes定义在此时间之后消费者补偿将被删除。但对我来说,\u消费者\u补偿主题有clean.policy=compact。请参阅以下我在定义消费者偏移量时的结果主题: 主题:\消费者\偏移量分区计数:50复制因子:1配置:压缩。类型=生产者,清理。策略=压缩,段。字节=104857600 因此,现在的问题是,在2分钟后,消费者补偿将从主题中删除,或者仍然以压缩形式存在于主题中?(一些关于消费者补偿如何存储在卡夫卡中的简短上下文) 首先要知道的是,消费者的偏移量以下面的消息格式存储在_consumer_offset主题中 关键字:值(近似格式) (消费者群体、主题名称、分区):(…偏移量…),。。。。 提交时间戳、过期时间戳) 由于消费者偏移量是一个主题,因此没有更新现有记录的规定,因此每次更新都作为新记录保留 (现在回到你的问题) 设置offset.retention.minutes=2会将每个消费者的偏移量重置为NULL,前提是在这段时间内您的主题上没有活动消费者它不会删除,只是将偏移量重置为NULL。因此,现在您的uu消费者u补偿主题将更新为一条新记录,如下所示: 键->(消费者组、主题名称、分区):值->空 但同一密钥的旧记录仍然存在。但是,如果您的使用者通过立即重新启动重新激活,它将在_consumer_offset主题中看到无效的偏移量,因此要决定读取哪个偏移量,有一个定义为“auto.offset.reset”的使用者属性,您可以根据应用程序逻辑将其设置为“最早”或“最晚”Apache kafka 如果offset.retention.minutes=2,cleanup.policy=compact,kafka会删除提交的偏移量还是压缩它,apache-kafka,Apache Kafka,我对卡夫卡不熟悉,但我知道卡夫卡将消费者补偿存储在\uu consumer\u offset主题和offset.retention.minutes定义在此时间之后消费者补偿将被删除。但对我来说,\u消费者\u补偿主题有clean.policy=compact。请参阅以下我在定义消费者偏移量时的结果主题: 主题:\消费者\偏移量分区计数:50复制因子:1配置:压缩。类型=生产者,清理。策略=压缩,段。字节=104857600 因此,现在的问题是,在2分钟后,消费者补偿将从主题中删除,或者仍然以压缩
现在,就这个主题的清理策略而言,它是“紧凑的”,它表示在主题的保留策略过期后,只会维护与密钥对应的最新记录,这是由集群级别的属性log.retention.min确定的。因此,在保留策略过期后,将只为每个使用者保留最新提交的偏移量,从而为您提供主题的压缩形式。@mike My question与Kafka log Compressing not Start不同。我的问题是消费者补偿是否会因为补偿而被删除。retention.minutes定义或会因为清理而被压缩。policy=compact for u消费者u补偿主题。