- Published on
架构设计复杂度模型
鸡蛋篮子第一法则:如何一个蓝字数不清,拆分到多个蓝字再数
业务复杂度 和 质量负责度 正交,二者相互不影响
架构复杂度应对之道
可扩展
extensibility:系统适应变化的能力。包含可理解 可复用两个部分(可理解也是可扩展的部分) 重点就是拆分和复用。
scalability:可伸缩,系统通过添加更多资源来提升性能的能力
可理解和可复用如何影响可扩展:可理解代码系统有哪些地方有修改,可复用代表修改的范围有多大。
拆分法则
内部复杂度,外部复杂度 平衡原则
为什么不先拆多一些然后再合并。
封装
预测的艺术
封装的技巧
美团MazeGo规则引擎
OSGI微内核
高性能
高性能:计算的高性能, 存储的高性能
单机高性能复杂度分析
列出只是常见的
集群高性能设计
鸡蛋蓝字理论-叠加法则
任务分配
任务分配器本身也是集群
任务分配:DNS,Nginx(10万)(类似的还有F5百万, LVS 50万量级)
memcached
任务分解
比任务分配更复杂。
微信
数据库读写分离 就是为了提升读的性能。
投入产出比,拆分之后更容易优化
高可用
单机架构没有高可用。
鸡蛋篮子第三法则 冗余法则
高可用方案必然是集群方案。
计算高可用
任务分配
任务分配器 需要监控业务服务器的状态。,在故障时进行切换。
下面 运行形态,配置获取,分配算法和高性能是一样的。
存储高可用
复制格式
复制方式