架构 - 知识体系

TIP

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

如何学习架构

  • 包含如何学习架构?

A 基础到方法论

  • 概述,特点,目标,本质
  • 方法论

具体请参考:

B 如何理解架构

  • 架构的视角
  • 架构的演进
  • 服务化演进
  • 架构的核心要素

具体请参考:

C 架构的模式

  • 分层:一般可分为,应用层,服务层,数据层,管理层,分析层;
  • 分隔:一般按照业务/模块/功能特点进行划分,比如应用层分为首页,用户中心。
  • 分布式:将应用分开部署(比如多台物理机),通过远程调用协同工作。
  • 集群:一个应用/模块/功能部署多份(如:多台物理机),通过负载均衡共同提供对外访问。
  • 缓存:将数据放在距离应用或用户最近的位置,加快访问速度。
  • 异步:将同步的操作异步化。客户端发出请求,不等待服务端响应,等服务端处理完毕后,使用通知或轮询的方式告知请求方。一般指:请求——响应——通知 模式。
  • 冗余:增加副本,提高可用性,安全性,性能。
  • 安全:对已知问题有有效的解决方案,对未知/潜在问题建立发现和防御机制。
  • 自动化:将重复的,不需要人工参与的事情,通过工具的方式,使用机器完成。
  • 敏捷性:积极接受需求变更,快速响应业务发展需求。

具体知识点请参考:

D 分层下看架构技术点

以上采用七层逻辑架构,第一层客户层,第二层前端优化层,第三层应用层,第四层服务层,第五层数据存储层,第六层大数据存储层,第七层大数据处理层。

  • 客户层:减少Http请求数,浏览器缓存,启用压缩,Js异步,减少Cookie传输;

  • 前端层:DNS负载均衡,CDN本地加速,反向代理服务;

  • 应用层:业务拆分;负载均衡,分级管理,应用缓存,服务集群,快速失败,异步调用,服务降级,消息队列,幂等设计等。

  • 服务层:提供公用服务,比如用户服务,订单服务,支付服务等;

  • 数据层:分布式, 数据库集群,读写分离,NOSQL集群,文件系统集群;分布式缓存;冗余备份(冷,热备[同步,异步],温备),失效转移(确认,转移,恢复)。CAP理论,一致性算法。

  • 大数据存储层:支持应用层和服务层的日志数据收集,关系数据库和NOSQL数据库的结构化和半结构化数据收集;

  • 大数据处理层:通过Mapreduce进行离线数据分析或Storm实时数据分析,并将处理后的数据存入关系型数据库。(实际使用中,离线数据和实时数据会按照业务要求进行分类处理,并存入不同的数据库中,供应用层或服务层使用)。

E 架构案例分析

更多待整合的文章

如何从 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全栈,谢谢!