单体架构

单体架构将所有模块以及数据库放在一块。

架构垂直拓展是什么 垂直式组织架构_分布式架构

优点:开发部署都很方便,适用于小型项目。

缺点:项目启动慢;可靠性差;可伸缩性差;拓展性和可维护性差;性能低。

垂直架构

垂直架构是指将单体架构中多个模块拆分为多个独立项目,形成多个独立的单体架构。

架构垂直拓展是什么 垂直式组织架构_架构垂直拓展是什么_02

 垂直架构解决了一部分单体架构的缺点,但是也存在一些问题:需要写的重复功能太多。

分布式架构

分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。

架构垂直拓展是什么 垂直式组织架构_架构垂直拓展是什么_03

 RPC:Remote Procedure Call 远程过程调用。有非常多的协议和技术都实现了RPC过程,如:HTTP REST风格,Java RMI规范,Hession等等。

分布式架构存在的问题:服务提供方一旦发生变更,所有消费方都需要变更。

SOA架构

SOA(Service-Oriented Architecture),面向服务的架构,是一个组件模型,他将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。

架构垂直拓展是什么 垂直式组织架构_分布式架构_04

 ESB:Enterparise Servce Bus,企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。ESB包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。

分布式架构存在的问题:服务提供方一旦发生变更,所有消费方都要变更。

微服务架构

微服务架构是在SOA上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

架构垂直拓展是什么 垂直式组织架构_架构_05

特点:

服务实现组件化:开发者可以自由选择开发技术,不需要协调其他团队。

去中心化:每个微服务有自己私有的数据库持久化业务数据。

自动化部署:把应用拆分为一个一个独立的单个服务,方便自动化部署、测试、运维。

服务之间交互一般使用REST API。