架构实战营模块二学习总结
模块二主要学习了如何设计可扩展架构、高性能架构和高可用架构。
可扩展架构分为:架构可扩展(分层,分服务),应用可扩展,代码可扩展(预测变化、封装变化)。
可扩展涉及到拆分法则,可以分为拆分形态(服务-》模块-》插件-》package)和拆分粒度(内部复杂度和外部复杂度)。
封装复杂度的精髓在于预测变化,从而封装变化。注意预测的时间范围和演进思路(需要时重构)。封装模型主要包括:规则引擎,微内核,抽象层,设计模式。
高性能复杂度分为单机和集群,每一个又分为计算高性能和存储高性能。单机的计算高性能模型分为:进程模型(多进程,多线程),网络模型(PPC/TPC,Reactor),缓存模型(本地缓存,独立缓存);存储高性能模型为存储模型(B+Tree 读多写少可变,LSM 写多读少不可变)。集群的计算高性能和存储高性能,模式都是任务分配和任务分解。
高可用复杂度模型分为计算高可用和存储高可用。计算高可用模式也是任务分配和任务分解。存储高可用模式为数据复制(复制格式(命令、数据、文件),复制方法(同步【主备、主从】、异步、半同步、多数同步【OceanBase、ZooKeeper】))和状态决策(独裁式【ZooKeeper、Raft、Keepalived】,协商式【内部系统、网络设备】,民主式【Raft、ZAB、Paxos】)
评论