Kafka的每个Topic (主题)都可以分为多个Partition (分区),每个分区都有多个Replica(副本),实现消息冗余备份。
每个分区中的消息是不同的,这类似于数据库中水平切分的思想,提高了并发读写的能力。
而同一分区的不同副本中保存的是相同的消息,副本之间是一主多从的关系,其中Leader副本负责处理读写请求,Follower 副本则只与Leader副本进行消息同步,当Leader副本出现故障时,则从Follower 副本中重新选举Leader副本对外提供服务。这样,通过提高分区的数量,就可以实现水平扩展,通过提高副本的数量,就可以提高容灾能力。