功能特性 消费群组 在kafka中,某些Topic的主题拥有数百万甚至数千万的消息量,如果仅仅靠个消费者进程消费,那么消费速度会非常慢。Kafka提供的消费组功能,一个分区只可以被消费组中的一个消费者所消费, 一个消费组中的一个消费者可以消费多个分区。消费组三大优势消费效率更高、消费模式灵活、便于故障容灾。 消息回溯 Kakfa消息写入Broker后,会保存一段时间。在这段时间内,如果消费者导致消息丢失(比如消费者过早的提交了偏移量,发送故障,进行rebalance),可以通过发送seek指令到消费者,告诉其从具体的偏移量开始重新消费。 消息清理 Kafka每一个分区副本都对应的一个 log 日志文件。而 Log 又分为多个 LogSegement 日志分段,每个片段可以设置大小,当达到上限,就关闭当前文件,打开一个新的文件。这些片段是不能永久保存的,达到一定的条件,就需要清理。Kafka包括基于时间,基于日志大小,基于日志偏移量三种模式。 基于时间模式,检查日志文件中是否有保留时间超过设定的的阀值(log.retention.hours, log.retention.minutes ,log.retention ms三个值配合),符合条件则删除。比如log.retention.hours设置为24,则保留仅1天的片段数据,其他的都删除。注意,活跃的片段(正在写入的片段)是无法删的,以下几种模式也一样。 基于日志大小模式,检查片段文件的大小是否超过设定的阀值(通过log.segment.bytes设置单个片段的大小),符合条件则删除。 基于日志起始偏移量模式,检查片段文件的偏移量(结束位置)是否小于设置的偏移量阀值,符合条件则删除。