《2022年如何构建高可用性高扩展性的系统.docx》由会员分享,可在线阅读,更多相关《2022年如何构建高可用性高扩展性的系统.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 如何构建高可用性高扩展性的系统名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - 1 高可用性 1.1 防止故障1.1.1 明确使用场景保持系统简洁1.1.2 设计可容错系统Fail Fast 原就主流程任何一步显现问题,就应当快速终止接口和对象设计要严谨能否被重复调用多线程并发环境下是否有反常对象类型是否需要检查1.1.3 设计具备自我爱护才能的系统对第三方资源持怀疑态度,供应降级措施1.1.4 限制使用资源内存名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资
2、料 - - - - - - - - - 防止集合容量过大造成 OOM准时释放不再使用的对象文件网络连接资源线程池1.1.5 其他角度分析可能的风险1.2 准时发觉故障 1.2.1 监控报警系统 1.2.2 日志系统和分析系统 1.3 准时故障处理 1.3.1 降级 1.3.2 限流 1.4 拜访量上涨的应计策略名师归纳总结 - - - - - - -第 3 页,共 8 页精选学习资料 - - - - - - - - - 1.4.1 垂直伸缩 增加配置1.4.2 水平伸缩 增加机器1.4.3 拆分 按业务拆库按规章拆表1.4.4 读写分别 实时性要求不高、读多写少的系统如何快速地从写库复制到读库
3、1.4.5 其他 容量规划2 高可扩展性2.1 垂直伸缩 2.1.1 高拜访量名师归纳总结 - - - - - - -第 4 页,共 8 页精选学习资料 - - - - - - - - - 增加 CPU锁线程数单线程程序增加内存cacheJVM 堆2.1.2 大数据量 分表单表数据量削减跨表查询、分页查询复杂度提升2.1.3 运算才能 线程数提升2.2 水平伸缩2.2.1 高拜访量名师归纳总结 - - - - - - -第 5 页,共 8 页精选学习资料 - - - - - - - - - SNA(Shared Nothing Architecture)有状态的部分,放入缓存或数据库中有状态的
4、情形存在内存的状态广播同步 例如 session 同步 单台机器容量有限 分布式缓存 一样性 hash文件直连储备 DASDirect -Attached Storage 网络储备NASNetwork Attached Storage SANStorage Area Network 分布式文件系统GFS HDFS数据库问题cache名师归纳总结 - - - - - - -第 6 页,共 8 页精选学习资料 - - - - - - - - - 页面静态化 页面片段缓存 数据缓存分库按业务拆库 跨库拜访需要多次查询;跨库写需要分布式事务异步数据库拜访传统方式:堵塞 IO异步方式:非堵塞、异步 IO中间层 DAL(Data Access Layer)透亮化分库分表规章隔离业务服务器和数据库服务器2.2.2 大数据量性能压力读写分别对称复制 非对称复制多 master名师归纳总结 - - - - - - -第 7 页,共 8 页精选学习资料 - - - - - - - - - 多个 master 数据不同 多个 master 数据相同数据一样性问题复制两阶段提交三阶段提交Google paxos 自增 id 程序统一生成2.2.3 运算才能MapReduceMPI名师归纳总结 - - - - - - -第 8 页,共 8 页