¶ ♥架构 - 知识体系详解♥
TIP
本系列将带你梳理下架构相关的知识体系。@pdai
¶ 如何学习架构
- 包含如何学习架构?
¶ 基础到方法论
包括架构的概述,特点,目标,本质以及方法论等
- 架构 - 架构基础: 特点,本质...
- 本节总结下架构相关的基础知识:概述,特点,目标,本质...
¶ 如何理解架构
理解架构,包括架构的视角,架构的演进,服务化演进,架构的核心要素
- 架构 - 理解构架的视角
- 在学习架构时,我认为首先要理清楚架构的视角,因为你所认知的架构和别人所说的架构可能是两码事。对于不同职位的视角是不一样的,比如开发而言他更多的看到的是开发架构;对售前人员,他可能更多的看到的是业务架构;对于运维人员,他看到的可能是运维架构;而对于技术支持和部署人员,他更多的看到的网络和物理架构。
- 架构 - 理解架构的演进
- 在学习架构时,第一步不要去学习框架,而是要学习架构的演进。强烈推荐李智慧老师的《大型网站技术架构》,这本书翻起来很快,对构筑你自己的体系很有帮助,本文的内容来源于它,在此基础上拓展了下。
- 架构 - 理解架构的服务演化
- Kubernetes、Service Mesh 和 Serverless应该是最近比较火的了,而上文主要从逻辑架构角度分析了架构演进,本文将从服务演化和容器编排化的角度帮你增强对架构演进的认识。
- 架构 - 理解架构的模式1
- 架构演进中有很多知识点,总体上可以归结为以下模式,这里说的模式本质是架构中技术点的抽象。强烈推荐李智慧老师的《大型网站技术架构》,本文的内容也是来源于它,在此基础上拓展了下。
- 架构 - 理解架构的模式2
- 本文整理自朱晔的互联网架构实践心得 (opens new window), 他是结合了 微软给出的云架构的一些模式的基础上加入他自己的理解来总结互联网架构中具体的一些模式。我在此基础上进行了些微小的调整。
- 架构 - 理解架构的核心要素
- 一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。
¶ 架构高并发和高可用
架构高并发和高可用技术点主要包含如下方面。
- 架构之高并发:缓存
- 高并发实现的三板斧:缓存,限流和降级。缓存在高并发系统中有者极其广阔的应用,需要重点掌握,本文重点介绍下缓存及其实现。
- 架构之高并发:限流
- 每个系统都有服务的上线,所以当流量超过服务极限能力时,系统可能会出现卡死、崩溃的情况,所以就有了降级和限流。限流其实就是:当高并发或者瞬时高并发时,为了保证系统的稳定性、可用性,系统以牺牲部分请求为代价或者延迟处理请求为代价,保证系统整体服务可用。
- 架构之高并发:降级和熔断
- 在高并发环境下,服务之间的依赖关系导致调用失败,解决的方式通常是: 限流->熔断->隔离->降级, 其目的是防止雪崩效应。
- 架构之高可用:负载均衡
- 负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
- 架构之高可用:容灾备份,故障转移
- 容灾技术是系统的高可用性技术的一个组成部分,容灾系统更加强调处理外界环境对系统的影响,特别是灾难性事件对整个IT节点的影响,提供节点级别的系统恢复功能。故障转移(failover),即当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作。故障恢复是在计划内或计划外中断解决后切换回主站点的过程。
此外还需要关注下架构的安全。
- 架构 - 保障架构安全
- 本文对架构安全知识点梳理。
¶ 分层下看架构技术点
以上采用七层逻辑架构,第一层客户层,第二层前端优化层,第三层应用层,第四层服务层,第五层数据存储层,第六层大数据存储层,第七层大数据处理层。
- 客户层:减少Http请求数,浏览器缓存,启用压缩,Js异步,减少Cookie传输;
- 前端层:DNS负载均衡,CDN本地加速,反向代理服务;
- 应用层:业务拆分;负载均衡,分级管理,应用缓存,服务集群,快速失败,异步调用,服务降级,消息队列,幂等设计等。
- 服务层:提供公用服务,比如用户服务,订单服务,支付服务等;
- 数据层:分布式, 数据库集群,读写分离,NOSQL集群,文件系统集群;分布式缓存;冗余备份(冷,热备[同步,异步],温备),失效转移(确认,转移,恢复)。CAP理论,一致性算法。
- 大数据存储层:支持应用层和服务层的日志数据收集,关系数据库和NOSQL数据库的结构化和半结构化数据收集;
- 大数据处理层:通过Mapreduce进行离线数据分析或Storm实时数据分析,并将处理后的数据存入关系型数据库。(实际使用中,离线数据和实时数据会按照业务要求进行分类处理,并存入不同的数据库中,供应用层或服务层使用)。
¶ 架构案例分析
- 架构案例 - 秒杀系统设计
- 京东: 亿级商品详情页设计
- 闲鱼: 亿级商品结构化背后的思考和演进
- 闲鱼: 多状态多操作的交易链路架构演进
- 闲鱼: 拉新投放系统如何设计
- 闲鱼: 复杂搜索系统的可靠性优化之路
- 美团: 配送系统架构演进实践
- 美团: 即时物流的分布式系统架构设计
- 美团: 外卖客户端高可用建设体系
- 美团: 数据库高可用架构的演进与设想
- 美团: 数据同步到仓库的架构实践
更多待整合的文章
如何从 0 到 1 设计、构建移动分析架构 https://blog.csdn.net/weixin_44326589/article/details/93463878
蚂蚁金服面对亿级并发场景的组件体系设计 https://juejin.im/post/5cda3131e51d4514df42076f
高德服务单元化方案和架构实践 https://yq.aliyun.com/articles/728021
从 0 到 100——知乎架构变迁史 https://www.infoq.cn/article/2014/12/zhihu-architecture-evolution/ https://www.jianshu.com/p/2639b7bb0d74
蚂蚁金服 11.11:支付宝和蚂蚁花呗的技术架构及实践 https://www.infoq.cn/article/technical-architecture-of-alipay-and-ant-check-later/
新浪微博王传鹏:微博推荐架构的演进 http://www.uml.org.cn/zjjs/2015092801.asp
互联网公司技术架构,微信/淘宝/微博/腾讯/阿里/美团点评/百度/Google/Facebook/Amazon/eBay的架构 https://github.com/davideuler/architecture.of.internet-product
联系我

PS:添加时请备注Java全栈,谢谢!