这是我参与「第五届青训营 」伴学笔记创作活动的第6天
一 本节课主要内容
1. 什么是架构
2. 企业级后端架构剖析
3. 企业级后端架构的挑战
4. 后端架构实战
二 本节课详细内容
架构
1. 基本概念
- 架构,又称软件架构
- 是有关软件整体结构与组件的抽象描述·用于指导软件系统各个方面的设计
通俗地说,架构是实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用
1.1 架构的重要性?
地基没打好,大厦容易倒地基坚实了,大厦才能盖得高·站在巨人肩膀上,才能看得远
2.什么是架构,架构的分类
对于单机架构,我们需要一个流量分发的 “中转站”去实现,如图:
这种架构的优点是简单,缺点也显而易见 容易造成C10K问题,也就是说新到来一个TCP连接,就需要分配1个进程(或者线程)。进程又是操作系统最昂贵的资源,一台机器无法创建很多进程。如果是C10K,就要创建1万个进程,那么就单机而言,操作系统是无法承受的。运维的时候需要停服。
这个问题可以通过分布式部署的单体架构解决,如此实现了下列的架构形式
这样的效率还是有点低,师傅如果不是 “全栈”,就需要大堂经理去调配,如下图所示,垂直应用架构
这种架构的缺点是职责太多开发效率低,爆炸半径(影响)较大,如果我们从水平方向进行切分,即将做蛋糕的过程进行细分,又会如何?
SOA(Service-Oriented Architecture)实现了这一想法,它主要实现了
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准
如果对于SOA再进行演进,去中心化,就是微服务架构
架构的演进初衷:好比做蛋糕。
- 需求量越来越大,终归要增加人手·越做越复杂,终归要分工合作
- 架构的演进思路:就像切蛋糕。蛋糕越来越大,一口吃不下终归要切分。竖着切(垂直切分),横着切(水平切分)
企业级后端架构剖析
进行了一个云服务基础架构的阐述
- IaaS 买房子
- PaaS 全包
- SaaS 弹性资源平台构建的云服务
- FaaS 类似OJ平台,实现函数即可
云原生:可弹性扩展的应用
弹性计算资源类型;
- 服务资源调度
- 微服务:和面、雕花·大服务:烤箱
- 计算资源调度
- 在线:热销榜单·离线:热销榜单更新·消息队列
- 在线:削峰、解耦·离线:大数据分析
弹性存储资源类型;。
-
经典 对象:宣传视频 大数据:用户消费记录
-
关系型数据库 收银记录.元数据 服务发现:蛋糕店通讯录.
-
NoSQL KV:来个xx蛋糕