传统单体应用、SOA(面向服务)、微服务之间的对比

1.单体应用

MVC模式构建的单体应用适合项目初期,能够方便的进行开发,部署,测试。随着业务的增长与访问量的增加,单体应用存在的问题也会暴露出来。

  • 单体应用的维护:
    单体应用中,大部分逻辑部署在一个集中化,单一的环境或服务器中运行。单体应用通常很大,由一个大型团队或多个团队维护。庞大的代码可能给开发人员增加开发成本。开发过程中使用的开发环境和容器不堪重负,降级开发效率。
  • 部署:
    单体应用需要编译,部署话费很长时间,一个小小的修改就能造成编译并部署整个项目。
  • 资源控制:
    单体应用中,当请求量过大导致单台服务器无法支撑时,一般会将单体应用部署在多台服务器形成服务集群,并通过Nginx反向代理实现负载均衡。集群中的每个服务必须部署完整的应用,但实际业务需求中仅有部分功能频繁使用。
  • 稳定性:
    单体应用中如果出现一个小问题,有可能使整个系统崩溃。
  • 存在的问题:
    高并发下服务器容易宕机
    在这里插入图片描述

2.SOA面向服务的架构

  • 简介:
    面向服务的架构:它是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。
  • 优点:
    解耦,适用于大项目,多人开发
  • 缺点:
    网络延迟,维护复杂,无法阻止服务之间的过渡耦合,整合难度大,编写复杂。

在这里插入图片描述

3.什么是微服务架构

微服务是一种软件架构风格,将一个复杂的应用拆分成多个服务模块,每个模块专注于单一业务功能对外提供服务,并可以独立编译部署,同时各模块之间可以互相通信,组合为整体对外提供服务。
在这里插入图片描述

  • 代码维护:
    微服务将这个庞大并且复杂的应用拆分成逻辑简单并且独立的小应用,每个应用交由不同的团队进行维护,彼此之间互不干扰,通过标准接口互相通信。
  • 部署:
    微服务架构中对其某一个服务进行修改,只需要重新编译,部署改动的服务模块。
  • 资源控制:
    微服务所拆分出的各个模块中,模块之间的耦合度低,发生问题时影响范围固定在该范围中,整个系统依然健全。
    在这里插入图片描述
发布了18 篇原创文章 · 获赞 6 · 访问量 176

猜你喜欢

转载自blog.csdn.net/penerx/article/details/104327616