20181122软件架构设计
才振功
15867288513
从需求到具体实现之间的过程 围绕非功能性需求 并不是所有非功能需求都能用架构设计来解决
课程设置: 1 软件架构介绍 2 质量属性 3 质量驱动的架构设计 4 架构风格与模式 5 分布式架构 6 服务端架构 7 架构评估与重构 8 复习与报告
经典书籍:面向模式的软件体系结构 卷1 2 3(Mary Shaw & David Garlan)
建筑的例子:狗舍与别墅与摩天大楼(简单 -> 复杂 -> 超复杂)
大型网站的特点:高并发大流量 高可用 用户分布广泛 需求快速变更 发布频繁 海量数据 安全环境恶劣 渐进式发展
大型网站架构演化 那张图 分而治之+关注点分离(如计算性能 存储性能 实时性能)
分布式服务:只存在业务和服务的概念 而没有业务系统的概念
大型网站架构模式: 分层 分割 分布式 集群 缓存 异步 冗余 自动化 安全
应用服务器性能优化 分布式缓存(首先考虑使用缓存优化性能) 异步操作(任何可以晚点再做的事情都晚点做) 使用集群 代码优化 存储性能优化
万无一失:高可用架构 分级管理 超时设置 异步调用 服务降级(大规模集群常见做法) 幂等性设计(保证重复调用效果与一次调用一致)
万无一失:高频繁发布 代码控制 自动化发布
永无止境:伸缩式架构 随需应变:可扩展架构 利用分布式消息队列降低系统耦合性 固若金汤:安全架构