Apache Kafka教程:主题复制
Apache Kafka是大数据世界中的漫衍式软件系统。 因此,对付这样的系统,需要具有所存储数据的副本。 在Kafka中,每个经纪人都包罗某种数据。 但是,如果代办代理或计算机呈现故障怎么办? 数据将丢掉。 预防法子,,Apache Kafka启用了复制成果,即使代办代理产生故障也可以确保数据丢掉。 为此,将为任何特定代办代理中包罗的主题创建一个复制因子。 复制因子是多个代办代理上的数据副本数。 复制因子值应始终大于1(介于2或3之间)。 这有助于将数据的副本存储在用户可以从中访谒数据的另一个代办代理中。
例如,假设我们有一个群集,此中包罗三个代办代理,即代办代理1,代办代理2和代办代理3。一个主题,即Topic-X被分为分区0和分区1,复制因子为2。
因此,我们可以看到Topic-x的分区0在Broker 1和Broker 2中具有其副本。而且,Topic-x的Partition 1在Broker 2和Broker 3中具有其复制。
当同时存在实际数据及其副本时,显然会感想猜疑。群集可能会混淆哪个代办代理应满足客户请求。为了消除这种混乱,Kafka完成了以下任务:
它选择经纪人的一个分区作为带领者leader,其余的则成为其跟从者followers。
跟从者(经纪人)将被允许同步数据。但是,在有带领者在场的情况下,任何跟从者都不能满足客户的请求。这些副本称为ISR(同步副本)。因此,Apache Kafka为数据供给了多个ISR(同步复制)。
因此,仅带领者被允许处事客户请求。带领者措置惩罚惩罚分区的所有数据读写操纵。带领者及其跟随者由zookeeper确定(稍后讨论)。
如果持有分区带领者的代办代理由于任何故障而无法供给数据,则其相应的ISR复制副本之一将接管带领者。从此,如果前任带领者返回,它将测验考试再次获得其带领者。
让我们看一个例子来理解带领者及其跟随者的观点。
假设有一个具有以下三个代办代理1,2和3的集群。存在一个主题x,该主题具有两个分区,复制因子= 2。
因此,为消除混乱,为Broker1下的Partition-0供给了带领感化。 因此,它是带领者,Broker2下的分区0将成为其副本或ISR。 同样,Broker2下的分区1是带领者,Broker3下的分区1是其副本或ISR。 如果代办代理1无法供给处事,则具有分区0副本的代办代理2将成为带领者。
Apache Kafka教程:主题复制
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31818.html