单体架构,SOA,微服务

架构演进

单体架构
SOA
微服务


单体架构

一个归档包包含了应用所有功能的应用程序, 我们通常称之为单体应用。 
架构单体应用的架构风格, 我们称之为单体架构, 这是一种比较传统的架构风格。

单体架构的缺点

  复杂性逐渐变高
  技术债务逐渐上升
  部署速度逐渐变慢
  阻碍技术创新
  无法按需伸缩


SOA

面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。


微服务


  微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。
  其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。
  这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部署。
  这些微服务可以使用不同的语言来编写,并且可以使用不同的数据存储技术。
  对这些微服务我们仅做最低限度的集中管理


微服务特点:

  1. 每个微服务可独立运行在自己的进程里;
  2. 一系列独立运行的微服务共同构建起了整个系统;
  3. 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理、用户管理等;
  4. 微服务之间通过一些轻量的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。


微服务优点:

  易于开发和维护
  启动较快
  局部修改容易部署
  技术栈不受限
  按需伸缩
  DevOps



微服务挑战

  运维要求较高
  分布式的复杂性
  接口调整成本高
  重复劳动



微服务设计原则
  单一职责原则
  服务自治原则
  轻量级通信原则
  接口明确原则










单体SOA是指将软件系统划分为多个功能模块或服务,每个模块或服务都可独立部署、升级和扩展,并通过消息传递或远程调用进行通信与协作的架构风格。 相对而言,微服务架构是一种更细粒度的服务拆分方式。它将单体SOA中的功能模块继续拆分为更小的、独立的服务单元,每个服务单元聚焦于特定功能,通过轻量级的通信机制(如RESTful API)进行协作与通信。 单体SOA在简化系统的复杂性、提高开发效率和系统可维护性方面存在一定的局限性。由于服务之间的依赖紧密,系统一旦出现故障或需要升级,往往需要停止整个系统。此外,由于整个系统的耦合度较高,当一个模块需要进行扩展或更新时,会影响到整个系统的稳定性和性能。 而微服务架构则更加注重服务的自治性和独立部署性。每个微服务都可以独立进行开发、测试、部署和扩展,服务与服务之间通过异步消息传递或远程调用实现通信。由于每个服务都相对较小,单个服务的更改对整体系统的影响较小。此外,微服务架构还可以根据需求动态伸缩,提高系统的整体性能和弹性。 总的来说,单体SOA主要强调系统的模块化与服务化,而微服务架构则更加注重服务的独立性与可扩展性。在现代软件开发中,由于分布式系统的需求越来越高,微服务架构被认为是更优秀的架构风格。但是,选择采用单体SOA还是微服务架构,应根据具体项目的需求和复杂度来决定。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值