架构学习总结
4R 架构
软件架构指软件系统的顶层结构,系统是分层的(Rank),它定义了系统由哪些角色(Role)组成,角色之间的关系(Relation)和运作规则(Rule)。
架构图
业务架构图、系统后端架构图、应用架构图、部署架构图等等,作为一名架构师画好系统架构图是最基本的素养。
面向复杂度架构设计逻辑
面向复杂度架构设计环
架构设计三原则
合适原则
简单原则
演化原则
三高架构设计
高可扩展(分层、拆分、封装)
高性能(计算高性能、存储高性能、任务分配、任务分解)
高可用(计算高可用、存储高可用)
架构师的职责
架构设计前期:主要理清需求、干系人、业务架构图
架构设计中期:设计备选方案、讨论方案可行性
架构设计后期:细化架构设计,落地架构文档
存储架构设计
数据库存储架构:读写分离、分库分表
复制架构:复制算法
存储架构模式:分片架构和分区架构
高性能系统
缓存架构:本地缓存、CDN、web 容器缓存、应用缓存、分布式缓存
复制均衡架构:DNS、F5/LVS、Nginx 等,负载均衡算法:随机、轮询、hash、加权
接口高可用:限流、排队、降级、熔断
微服务架构
微服务拆分注意点:拆分的力度不要太细(三个火枪手原则)、基础设施不完善
微服务拆分的挑战:分布式事务、全局幂等、接口兼容、接口循环调用
微服务技术选型:SpringCloud、Dubbo
微服务拆分:按业务拆分(业务边界的划分、三个火枪手)、按质量拆分(按性能、业务重要度、可用性、稳定性)
高可用架构
三大核心原理:FLP 不可能原理、CAP 定理、BASE 理论
使用 FMEA 方法排除架构隐患
业务级灾备架构设计:
同城多中心架构
跨城多中心架构
跨国数据中心架构
异地多活架构的三种模式
业务定制型异地多活
业务通用型异地多活
存储通用型异地多活
异地多活:原理、原则、步骤、技巧
架构设计技巧
网络模型:传统网络模型、Reactor 网络模型、Proactor 网络模型、网络模型对比
使用 zookeeper 实现高可用架构:主备切换、集群选举
复制集群架构设计技巧:Redis Sentinel 设计技巧、MongoDB Replication 设计技巧
分片架构设计技巧:Elasticsearch 集群设计技巧、Redis cluster 设计技巧、MongoDB/HDFS 集群设计技巧
常见集群算法解析:Gossip 协议、Bully 选举算法、Raft 选举算法
架构重构与架构演进技巧
版权声明: 本文为 InfoQ 作者【tony】的原创文章。
原文链接:【http://xie.infoq.cn/article/5140d922adcdf3138433c7e14】。未经作者许可,禁止转载。
评论