写点什么

架构学习总结

用户头像
Geek_1cdcf6
关注
发布于: 2021 年 08 月 03 日

模块一~三: 架构设计指导方法

  • 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


一个非常重要的收获是关于架构迭代过程的认知上的改变。尤其是对于尝试性的业务/项目,业务复杂度的变化其实是很快的,需要以适合团队的方式进行架构设计并及时落地,在发展过程中配合合理的架构演进和重构。过度设计往往是吃力不讨好。合适,简单,演进原则确实是非常有意义的指导思想。


发布于: 2021 年 08 月 03 日阅读数: 8
用户头像

Geek_1cdcf6

关注

还未添加个人签名 2021.01.18 加入

还未添加个人简介

评论

发布
暂无评论
架构学习总结