软件架构演变
1.1 主流的互联网技术特点
分布式 、高并发、集群、负载均衡、高可用。
【软件开发架构演变过程】分布式:一件事情拆开来做。
集群:一件事情大家一起做。
负载均衡:将请求平均分配到不同的服务器中,达到均衡的目的。
高可用:系统都是可用的。
1.2 架构演变的过程
软件架构的发展经历了由单体架构、垂直架构、分布式架构到流动计算架构的演进过程,如下图:
文章图片
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
流动计算架构
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。
(1)集中式架构也称为:单体应用。
文章图片
(2)分布式架构:
文章图片
(3)SOA架构:
文章图片
文章图片
文章图片
(4)演变过程:
从单体应用架构—>分布式架构–>SOA架构。
1.4 SOA架构:
面向服务的架构(SOA)是一个组件模型,全称为:Service-Oriented Architecture,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互.
推荐阅读
- 数据结构与算法|单调栈-部分有序
- 笔记|JAVA中的练习
- 数据结构|几种常见的排序方法整理
- Java|Java序列化和反序化
- Java|Java枚举类型
- java学习|Java高级学习笔记-1(多线程)
- java并发—动态调整线程池
- Firefox 禁止中国用户!!
- #java|***********-->JAVA50必刷题之第一题<--***************