在流处理中,“checkpoint” 通常指的是将应用程序的状态保存到可靠的存储系统中,以便在发生故障或应用程序需要重启时能够从先前的状态中恢复。这包括保存处理过的事件、中间结果以及任何其他状态信息。“Checkpointing” 可以确保系统的一致性,并提供容错能力。
在 Kafka Streams 中,流处理应用程序使用 Kafka 主题来持久化状态信息。这样,即使应用程序失败或需要扩展,也可以从 Kafka 主题中的先前状态中恢复。
在 Kafka 中,偏移量有几种不同的设置类型:
自动提交(Auto Commit): 这种设置类型下,消费者会定期自动将当前的偏移量提交到 Kafka。这样可以简化偏移量管理,但可能会导致重复处理消息或消息丢失的问题,因为提交的时间可能无法精确控制。
手动提交(Manual Commit): 这种设置类型下,消费者可以手动控制何时提交偏移量。这种方式提供了更多控制的灵活性,可以确保只有在消息处理完成后才提交偏移量,避免了重复处理消息或消息丢失的问题。
批量提交(Batch Commit): 这是手动提交的一种形式,允许消费者将一批偏移量一次性提交到 Kafka,而不是单个消息完成后立即提交。这种方式可以提高提交的效率,并减少提交操作对性能的影响。
异步提交(Asynch