一:基础架构图形推演
1:单体架构

单节点kafka broker,面临很多生产者和访问者的时候,大量的请求和访问大概率会因为吞吐量过大。产生io热点问题,结果就是:这个单一节点成为整个分布式系统的性能瓶颈和节点隐患。进而降低分布式系统的可用性和稳定性。
如果数据还没有写入到磁盘文件,而导致数据丢失。当前有两种方式,一种是横向拓展、纵向拓展。
横向拓展:单点改为集群。多个节点共同承载。降低单点故障带来的故障
纵向拓展:增加单节点服务器配置。比如:使用io效率更好的固态硬盘、切换千兆网卡、切换更优秀的Cpu、增大节点内存等等。这个性价比不高,横向才是王道。
2:集群broker
分布式系统的数据所有原理都是这样:数据分片+数据备份
kafka没有备份的概念,为了数据可靠性,我们可以将数据文件进行备份。kafka体系中称之为副本,多个副本中只能一个进行读写他就是leader。其他副本只是一个备份。
具有读写能力的副本叫做leader副本,作为备份的副本被称为follower副本。
下面图中:箭头出去的地方是leader副本,箭头所致的地方是follower副本。
Broker:服务节点(集群)
Topic:逻辑上进行Record分割的概念。
Partition:分区,本质上是逻辑上概念,有编号的概念,从0开始。有自己对应的物理目录和文件,并可以按照Broker进行备份。
replica:副本分为Leader和Follower概念。Leader可以进行读写,Follower只是备份。当Leader挂掉之后(网络故障、资源耗尽、交换机过热等)
