Ch07-Kafka 之数据可靠性
March 3, 2019
数据可靠性值指数据不会轻易丢失,数据一定会被可靠存储。
1. Topic 分区副本机制 #
Kafka 的分区多副本机制是 Kafka 可靠性保证的核心,把消息写入多个副本可以使 Kafka 在发生崩溃时仍能保证消息的持久性。 当消息写入所有 in-sync 状态的副本后,消息才会认为已提交(committed)。这里的写入有可能只是写入到文件系统的缓存,不一定刷新到磁盘。生产者可以等待不同时机的确认,比如等待分区主副本写入即返回,后者等待所有 in-sync 状态副本写入才返回。一旦消息已提交,那么只要有一个副本存活,数据不会丢失。
2. Ack 确认机制 #
通过 Ack 确认机制保证数据一定可靠的存储成功,简单的来说就是一定要得到确定答复才会进行下一次数据的处理。大体上 Ack 确认分为可以分为两种,第一种是 producer 与 broker 之间的确认,另一种是 partition 的 leader 和 follower 之间的确认。