架构模式 | 单体架构 | SOA架构 | 微服务架构 |
概念 | 前后端都在一个包里,所有的业务模块都耦合在一个项目里,大多数都是模块之间的调用,开发和部署都在一起,单个模块有更新,所有模块一起启停,而且对高并发、大数据处理能力比较弱 | 是为解决单体架构的弊端而延伸出来的架构,将应用中相近的功能模块聚合到一起,以服务的形式提供出去,服务于服务之间通过接口进行通信,其是面向服务的; | 但是随着用户和数据量的进一步增长,SOA 也暴露出来一些缺点,比如 SOAP 协议、XML较重;服务管理不完善;ESB本身就比较重,而且它本身算是一个单点,在软件架构中,单点意味着风险。 在微服务的架构中,将单一的应用程序划分为一个小服务,服务与服务之间通过轻量级的通信机制(通常是基于http、RESTful Api)互相协作、配合; 每个服务都是围绕具体的目的/业务进行构建,并运行在独立的进程中,可独立部署,可以用不同的编程语言编写,并使用不同的数据存储技术。 |
通信 | 在单体架构中,通过方法调用,SOA降低了这种耦合度,采用基于soap协议的web服务,但这种服务的消息提定义都十分复杂,如XML,所以微服务采用更轻量级的机制,即 同步消息的REST,以及基于AMQP, MQTT, STOMP的异步消息 | ||
备注/说明 | 开发和部署都在一起 | 2个很重要技术实现方式:Web Service 和 ESB | SOA 架构和微服务架构都属于分布式架构,分布式的最终思想是为了应对高并发的问题;SOA 是把业务系统分成多个子系统,提供不同的服务,再通过服务组合、编排实现业务流程; 微服务是SOA的升华,区别在于微服务更加强调服务的细分和专业,去ESB总线、去中心化,部署粒度更细,服务扩展更灵活。 当然SOA、微服务的出现,在解决一些问题的时候,也带来了另外一部分的问题,比如增加了网络开销、服务依赖性、增加了测试运维难度、数据一致性问题等等。 |
备注/说明2 |
架构模式的演变
最新推荐文章于 2022-04-04 19:00:12 发布