系统架构之微服务架构

微服务架构

  • 一.传统的单体架构与微服务架构的区别
    • [1.1 单体架构](#1.1 单体架构)
      • [1.1.1 优点](#1.1.1 优点)
      • [1.1.2 缺点](#1.1.2 缺点)
    • [1.2 微服务架构](#1.2 微服务架构)
      • [1.2.1 优点](#1.2.1 优点)
      • [1.2.2 面临的问题与挑战](#1.2.2 面临的问题与挑战)
  • [二. 微服务架构模式方案](#二. 微服务架构模式方案)
    • [2.1 聚合器微服务](#2.1 聚合器微服务)
    • [2.2 链式微服务](#2.2 链式微服务)
    • [2.3 数据共享微服务](#2.3 数据共享微服务)
    • [2.4 异步消息传递微服务](#2.4 异步消息传递微服务)
  • [三. SOA与微服务的区别](#三. SOA与微服务的区别)

微服务:顾名思义就是很小的服务,所以它是面向服务架构的一种。传统的单体架构与微服务架构的区别类似于雕版印刷VS活字印刷。

一.传统的单体架构与微服务架构的区别

1.1 单体架构

1.1.1 优点

①开发简单,集中式管理

②基本不会重复开发

③功能都在本地,没有分布式的管理和调用消耗

1.1.2 缺点

1、效率低:开发都在同一个项目改代码,相互等待,冲突不断

2、维护难:代码功能耦合在一起,新人不知道何从下手

3、不灵活:构建时间长,任何小修改都要重构整个项目,耗时

4、稳定性差:一个微小的问题,都可能导致整个应用挂掉

5、扩展性不够:无法满足高并发下的业务需求

1.2 微服务架构

目的:有效的拆分应用,实现敏捷开发和部署

1.2.1 优点

复杂应用解耦

小服务(且专注于做一件事),化整为零,易于小团队开发。

独立性强

独立开发、独立部署、独立测试、独立运行(每个服务在其独立进程中)

技术选型灵活

支持异构(如:每个服务使用不同的数据库)

容错能力强

故障被隔离在单个服务中,通过重试、平稳退化等机制实现应用层容错。

松耦合、易扩展

可根据需求独立扩展。

1.2.2 面临的问题与挑战

  • 分布式环境下的数据一致性

  • 测试的复杂性【服务间依赖测试】

  • 运维的复杂性

二. 微服务架构模式方案

2.1 聚合器微服务

2.2 链式微服务

2.3 数据共享微服务

2.4 异步消息传递微服务

三. SOA与微服务的区别

微服务 SOA
能拆分的就拆分 是整体的,服务能放一起的都放一起
纵向业务划分 是水平分多层
由单一组织负责 按层级划分不同部门的组织负责
细粒度 粗粒度
两句话可以解释明白 几百字只相当于SOA的目录
独立的子公司 类似大公司里面划分了一些业务单元(BU)
组件小 存在较复杂的组件
业务逻辑存在于每一个服务中 业务逻辑横跨多个业务领域
使用轻量级的通信方式,如HTTP 企业服务总线(ESB)充当了服务之间通信的角色
相关推荐
Tadas-Gao3 小时前
AI是否存在“系统一”与“系统二”?——从认知科学到深度学习架构的跨学科解读
人工智能·架构·系统架构·大模型·llm
程序员JerrySUN6 小时前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构
ZStack开发者社区7 小时前
替代VMware VCF | 详解ZStack Cloud开放架构与异构整合能力
架构
小股虫10 小时前
分布式事务:在增长中台,我们如何做到“发出去的内容”和“记录的数据”不打架?
分布式·微服务·云原生·架构·团队建设·方法论
乾元11 小时前
数据中心流量工程(TE)优化:当 AI 成为解决“维度诅咒”的唯一操纵杆
运维·服务器·网络·人工智能·架构·自动化
云器科技11 小时前
NinjaVan x 云器Lakehouse: 从传统自建Spark架构升级到新一代湖仓架构
大数据·ai·架构·spark·湖仓平台
用户917439653911 小时前
从单系统架构到微服务架构:软件现代化的转型综述
微服务·架构·系统架构
断春风12 小时前
从 JDK 8 到 JDK 21:企业级 Java 版本选择的架构思考
java·架构·jdk
h7ml12 小时前
构建可扩展的企业微信消息推送服务:事件驱动架构在Java中的应用*
java·架构·企业微信
墨辰JC12 小时前
STM32架构基于调度器的非阻塞按键状态机设计
stm32·microsoft·架构·状态机·调度器