架构学习总结
模块一~三: 架构设计指导方法
4R 架构 – Rank + Role + Relation + Rule
面向复杂度设计,架构设计环
合适、简单、演进三原则
可扩展、高性能、高可用复杂度模型
鸡蛋篮子理论:拆分法则,叠加法则,冗余法则
备选方案分析,架构设计文档
模块四: 存储架构
读写分离,分库分表,分布式事务
复制架构:主备复制,主从复制,选举架构
分片、分区架构:路由,高可用备份策略
架构设计:性能估算,选择存储系统,设计方案
模块五: 计算架构
缓存架构:多级缓存,缓存更新机制
缓存穿透、缓存雪崩、缓存热点
多级负载均衡:DNS,F5/LVS,Nginx;负载均衡算法
接口高可用:限流、排队、降级、熔断
模块六: 微服务架构
微服务 v.s. SOA
微服务拆分:业务 or 质量,三个火枪手
微服务框架:嵌入 SDK、反向代理、网络代理
中台:相似业务,通用
模块七~八: 高可用高性能
高可用三大核心原理:FLP、CAP、BASE
FMEA 分析架构隐患
业务级灾备:同城多中心、跨城多中心、跨国中心
异地多活模式:业务定制型、业务通用型、存储通用型
单机高性能:传统 PPC&TPC、Reactor、Proactor
ZooKeeper 高可用:主备切换、集群选举
集群架构:Redis sentinel v.s. MongoDB replication
集群算法:Gossip、Bully、Raft
分片架构:ElasticSearch、Redis cluster、MongoDB sharding、HDFS
模块九: 架构重构 &演进
架构重构:提升系统质量,增删改拆合
架构演进:应对新的复杂度,业务驱动 v.s.技术驱动
十万->百万->千万->亿级的发展关注点区别
模块十: 个人成长
架构师能力:技术、业务、管理;技术深度宽度广度
架构师考察:判断、拆解、取舍
架构设计复杂度:业务复杂度、质量复杂度
海绵学习法、Play 学习法、Teach 学习法
链式学习法、比较学习法、环式学习法
STAR 方法:Situation + Task + Action + Result
一个非常重要的收获是关于架构迭代过程的认知上的改变。尤其是对于尝试性的业务/项目,业务复杂度的变化其实是很快的,需要以适合团队的方式进行架构设计并及时落地,在发展过程中配合合理的架构演进和重构。过度设计往往是吃力不讨好。合适,简单,演进原则确实是非常有意义的指导思想。
版权声明: 本文为 InfoQ 作者【Geek_1cdcf6】的原创文章。
原文链接:【http://xie.infoq.cn/article/57849908bb759e804a35bfae1】。未经作者许可,禁止转载。
评论