0 基础架构入门 - 2
1.架构设计复杂度和应对之道
1.1.架构设计复杂度模型
业务复杂度:业务固有的复杂度,主要体现为难以理解、难以扩展。例如业务数量多(微信)、业务流程长(支付宝)、业务之间关系复杂(ERP)
质量复杂度:高性能、高可用、成本、安全等质量属性的要求。
1.2.架构复杂度应对之道
业务复杂度低+质量复杂度低:框架,如 SSH、LAMP、Ruby on rails......
业务复杂度高+质量复杂度低:SOA、微服务、DDD......
业务复杂度低+质量复杂度高:集群、缓存、Reactor、分片、副本......
业务复杂度高+质量复杂度高:融合所有模式
2.高性能复杂度和应对之道
2.1.单机高性能
2.1.1.计算高性能
进程模型:多进程、多线程
网络模型:TPC/PPC、Reactor
缓存模型:本地缓存、独立缓存
2.1.2.存储高性能
存储模型:B+Tree、LSM
2.2.集群高性能
2.1.1.任务分配
运行形态:SDK、独立服务器
配置获取:配置文件、配置中心
分配算法:随机/轮询/权重/Hash/负载
2.1.2.任务分解解
任务拆分:任务分类、任务分段
运行形态
配置获取
分配算法
3.高可用复杂度和应对之道
3.1.计算高可用
3.1.1.任务分配
状态检测
运行形态
配置获取
分配算法
3.1.2.任务分解
任务拆分
状态检测
运行形态
配置获取
分配算法
3.2.存储高可用
3.2.1.数据复制
复制格式:命令、数据、文件
复制方式:同步、异步、半同步、多数同步
3.2.2.状态决策
独裁式
协商式
民主式
评论