可以从两个层面回答,第一个是集群,第二个是复制机制
集群:
一个kafka集群由多个broker实例组成,即使某一天宕机,也不耽误其他broker继续对外提供服务
复制机制:
- 一个topic有多个分区 ,每个分区有多个副本,有一个leader,其余的都是follower,副本存储在不同的broker中
- 所有的分区副本的内容都是相同的,如果leader发生故障时,会自动将其中一个follower提升为leader,保证了系统的容错性、高可用
解释一下复制机制中的ISR
ISR(in-sync replica)需要同步复制保存的follower
分区副本分为两类,一个是ISR,与leader副本同步保存数据,另外一个普通的副本,是异步同步数据,当leader挂掉之后,会优先从ISR副本列表中选取一个作为leader。