微服务架构与面向服务架构

1.微服务架构

微服务架构是SOA架构的进一步优化,去除了ESB企业服务总线,是去中心化的分布式架构。将大型单体应用拆分成一组微小的服务,同时保持总体功能不变。每个微服务负责单一的业务功能、独立开发、独立配置、独立部署,降低了微服务之间的耦合程度,不同的微服务采用不同的技术,服务独立,数据源唯一,应用极易扩展和维护,同时降低了系统复杂性。

微服务带来的挑战:

  1. 并非所有的系统都能转成微服务。

  2. 每个微服务需要单独部署,从而增加了部署的复杂度,容器技术能解决这一问题。

  3. 微服务之间只能通过标准接口进行通信,可能产生延迟或调用出错。

  4. 作为分布式部署的微服务,在保持数据一致性方面需要比传统架构更加困难。

面向服务架构

面向服务架构(SOA)是一个组件模型,将系统整体拆分为多个粗粒度、松耦合、独立 的功能模块,称之为服务,服务之间通过简单、精确定义的接口进行通信。SOA架构以企业服务总线连接各个子系统,是集中式的技术架构。应用服务间相互依赖导致部署复杂,应用间交互使用远程通信,降低了响应速度。

ESB的定义:ESB是由中间件技术实现的支持SOA架构的基础软件平台,主要支持异构系统集成,支持异构环境中的服务以基于消息和事件驱动模式的交互,并且具有适当的服务质量QoS和可管理性。

ESB的主要功能

  1. 服务注册和发现

  2. 服务位置透明性

  3. 消息路由和寻址服务

  4. 消息传递

  5. 传输协议

  6. 数据格式转换

  7. 日志和监控

微服务和SOA比较

|------------------|------------------|
| 微服务 | SOA |
| 细粒度 | 粗粒度 |
| 去中心化 | 集中式 |
| 每个服务专注于单一功能,功能单一 | 是整体的,服务能放一起的都放一起 |
| 轻量级的通信机制,HTTP | 企业服务总线ESB |
| 独立部署 | 整体部署 |
| 纵向业务划分 | 水平多层 |
| 组件小 | 存在较复杂的组件 |
| 业务逻辑存在于每一个服务中 | 业务逻辑横跨多个业务领域 |
| 一个系统被拆分成多个服务 | 服务由多个子系统组成 |
| 去中心化,松散的服务架构 | 企业服务总线,集中式的服务架构 |
| HTTP、REST、JSON | ESB、SOAP |
| 服务能独立部署 | 服务相互依赖,部署复杂 |

相关推荐
CaritoB16 分钟前
中台架构下的数据仓库与非结构化数据整合
数据仓库·架构
写bug写bug27 分钟前
6 种服务限流的实现方式
java·后端·微服务
液态不合群5 小时前
低代码革命:加速云原生时代的端到端产品创新
低代码·云原生
一个诺诺前行的后端程序员10 小时前
springcloud微服务实战<1>
spring·spring cloud·微服务
王中阳Go10 小时前
字节跳动的微服务独家面经
微服务·面试·golang
canonical_entropy11 小时前
金蝶云苍穹的Extension与Nop平台的Delta的区别
后端·低代码·架构
沛沛老爹12 小时前
服务监控插件全览:提升微服务可观测性的利器
微服务·云原生·架构·datadog·influx·graphite
huaqianzkh13 小时前
了解华为云容器引擎(Cloud Container Engine)
云原生·架构·华为云
Alone804614 小时前
K8s中HPA自动扩缩容及hml
云原生·容器·kubernetes
珍珠是蚌的眼泪14 小时前
微服务_入门2
网关·微服务·gateway·远程调用·feign