软件架构指系统的顶层结构,它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule) .
根据4R理论;可以很好的协助我们很清晰的去认识一套系统;尤其是我们在学习一套框架源码原理的时候;很容易一头扎入去看源码,耗费很多精力却不知所云收获很少。
一、我们来看看通过4R理论怎么分析Kafka
A)kafka 顶层结构是什么 ?
Producer 、Kafka Cluster 、Consumer Group
B ) Kafka 角色组成
Producer、Broker、Partition、副本(Leader/Follower)、Consumer
C)Kafka 角色关系理解
1、Producer 和 Kafka集群 关系
2、Kafka集群和Broker 关系
3、分区和副本的关系
4、Consumer Group 和 Consumer的关系
5、Gonsumer Group 和Kafka集群的关系
D)运作规则
1、Producer 发送消息到 Kafka集群
2、Kafka集群通过Broker Leader 接收 Producer的消息并且写到Partition(细节不展开)
3、一个Patition对应多个副本(冷备)备份
4、Consumer Group 通过负载均衡让Consumer消费 Patition中的消息。
到此、对一个系统比较粗的分析就出来了。那么如果想看代码细节;就更清晰了;就能做到心中有数。
其实就是4R理论;对系统整体有个清晰的认识;再拆分;然后再逐步切入模块理解;这样也不会觉得很有难度。
比如我今天就看Producer、明天看Consumer代码细节。