♥架构 - 知识体系详解♥

TIP

本系列将带你梳理下架构相关的知识体系。@pdai

如何学习架构

  • 包含如何学习架构?

基础到方法论

包括架构的概述,特点,目标,本质以及方法论等

如何理解架构

理解架构,包括架构的视角,架构的演进,服务化演进,架构的核心要素

  • 架构 - 理解构架的视角
    • 在学习架构时,我认为首先要理清楚架构的视角,因为你所认知的架构和别人所说的架构可能是两码事。对于不同职位的视角是不一样的,比如开发而言他更多的看到的是开发架构;对售前人员,他可能更多的看到的是业务架构;对于运维人员,他看到的可能是运维架构;而对于技术支持和部署人员,他更多的看到的网络和物理架构。
  • 架构 - 理解架构的演进
    • 在学习架构时,第一步不要去学习框架,而是要学习架构的演进。强烈推荐李智慧老师的《大型网站技术架构》,这本书翻起来很快,对构筑你自己的体系很有帮助,本文的内容来源于它,在此基础上拓展了下。
  • 架构 - 理解架构的服务演化
    • Kubernetes、Service Mesh 和 Serverless应该是最近比较火的了,而上文主要从逻辑架构角度分析了架构演进,本文将从服务演化容器编排化的角度帮你增强对架构演进的认识。
  • 架构 - 理解架构的模式1
    • 架构演进中有很多知识点,总体上可以归结为以下模式,这里说的模式本质是架构中技术点的抽象。强烈推荐李智慧老师的《大型网站技术架构》,本文的内容也是来源于它,在此基础上拓展了下。
  • 架构 - 理解架构的模式2
  • 架构 - 理解架构的核心要素
    • 一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这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

联系我

添加@pdai微信

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