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

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 |
| 服务能独立部署 | 服务相互依赖,部署复杂 |

相关推荐
deephub24 分钟前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
想进大厂的小王1 小时前
Spring-cloud 微服务 服务注册_服务发现-Eureka
微服务·eureka·服务发现
景天科技苑1 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge2 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇2 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
W Y4 小时前
【架构-37】Spark和Flink
架构·flink·spark
Gemini19954 小时前
分布式和微服务的区别
分布式·微服务·架构
昌sit!10 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes
Dann Hiroaki13 小时前
GPU架构概述
架构
茶馆大橘13 小时前
微服务系列五:避免雪崩问题的限流、隔离、熔断措施
java·jmeter·spring cloud·微服务·云原生·架构·sentinel