目录
架构演进
单体架构

单体架构就是就是一个把所有功能融合在一起的单独的项目
优点: 简单:开发部署都很方便,小型项目首选
缺点: 项目启动慢 、可靠性差 、可伸缩性差 扩展性和可维护性差 、性能低
垂直架构

随着用户量的扩大,单独的单体应用某个功能太卡了影响到其他功能甚至会导致系统崩溃,垂着架构把单体架构的某个领域进行细分。
垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。
单体架构存在的问题:
项目启动慢、 可靠性差、 可伸缩性差 、扩展性和可维护性差 、性能低
垂直架构存在的问题: 重复功能太多
分布式架构
分布式架构(由于垂直架构存在太多的重复性,就把重复的主件,功能,模块,服务抽离出来,形成独立的服务,我们称他为服务的提供者,但是怎么调用呢,用RPC)
RPC: Remote Procedure Call 远程过程调用。有非常多的协议和技术来都实现了RPC的过程。比如:HTTP REST风格,Java RMI规范、WebService SOAP协议、Hession等等。

分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。(可以远程调用其他服务(项目)的接口)
RPC: Remote Procedure Call 远程过程调用。(可以理解就是跨了一个项目,单独拎出来做一个项目,通过注册中心进行消息传送)
有非常多的协议和技术来都实现了RPC的过程。比如:HTTP REST风格,Java RMI规范、WebService SOAP协议、Hession等等。
SOA架构

SOA ---- 流动计算架构:当服务(将⼀个单体应⽤中的每个功能分解到各个离散的服务)越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。用于提高机器利用率的资源调度和治理中心(SOA)[ Service Oriented Architecture]是关键。
SOA:(Service-Oriented Architecture,面向服务的架构)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。
SOA----面向服务架构,实际上强调的是软件的一种架构,一种支撑软件运行的相对稳定的结构,表面含义如此,其实SOA是一种通过服务整合来解决系统集成的一种思想。不是具体的技术,本质上是一种策略、思想。
ESB:(Enterparise Servce Bus) 企业服务总线,服务中介,主要是提供了一个服务于服务之间的交互。
ESB:(Enterparise Servce Bus) ---- 企业服务总线,像一根管道,用来连接各个节点。为了集成不同系统,不同协议的服务,ESB做了消息的转换、解释与路由等工作,让不同的服务互联互通。
ESB 包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。
分布式架构存在的问题: 服务提供方一旦产生变更,所有消费方都需要变更
微服务架构
微服务架构是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想。
特点: 服务实现组件化:开发者可以自由选择开发技术。
- 也不需要协调其他团队
- 服务之间交互一般使用REST API 去中心化
- 每个微服务有自己私有的数据库持久化业务数据。
- 自动化部署:把应用拆分成为一个一个独立的单个服务,方便自动化部署、测试、运维
