当前位置: 首页 > news >正文

微服务划分的思考

为什么

微服务不是十全十美的,不是银弹,是什么原因导致必须要做微服务划分,是否有足够的动机支撑,是项目需要,还是领导的想法,公司层面是否有相应的规划。

拆分后的服务谁来维护,研发同学是否愿意参与

为什么,思考清楚了,接下来看还需要考虑怎么做

单体应用的不足

  1. 随着时间推移逐渐变大,难以维护。
  2. 降低开发速度,应用越大,启动时间越长。
  3. 不同模块发生资源冲突时,扩展困难。密集计算型模块与密集I/O型模块资源冲突。
  4. 可靠性难以保障,任何一个模块的bug都有可能拖垮整个服务
  5. 采用新架构或者新技术非常困难

以上是单体服务面临的一些问题,但是不止于此。

微服务优点

微服务的核心价值在于以下几点:

  1. 粒度小,单个服务可以紧贴业务快速迭代;
  2. 去中心化组织和部署结构,减少不必要的协同;
  3. 数据和商业逻辑受同一个服务控制,从而在商业逻辑快速变更的同时,保障数据模型的一致性;
  4. 数据和状态独立封装,保障一个业务快速演变的同时,还不污染其他业务;
  5. 服务本身的独立部署能力使得容错和容量弹性最大化;
  6. 细粒度服务发布回滚和故障响应能够有效隔离,出了问题可以迅速降级或回滚。

微服务缺点

  1. 微服务应用是分布式部署,需要考虑服务间的协作通信
  2. 微服务的数据库是分区的,需要考虑数
http://www.xdnf.cn/news/57727.html

相关文章:

  • 量子计算在金融领域的应用与展望
  • Unity接入安卓SDK(3)厘清Gradle的版本
  • AI助理iOS开发:Copilot for Xcode 下载与安装全指南
  • Java 自动装箱与拆箱:基本数据类型与包装类的转换
  • Ansys electronics安装多版本simulink打开s-function冲突解决方法
  • 用Mac M4构建多架构Docker镜像指南
  • CSS 中实现 div 居中有以下几种常用方法
  • 解决Chrome浏览器访问https提示“您的连接不是私密连接”的问题
  • Android 15强制edge-to-edge全面屏体验
  • (7)NodeJS的使用与NPM包管理器
  • 1.2软考系统架构设计师:系统架构的定义与作用 - 练习题附答案及超详细解析
  • 23种设计模式-结构型模式之外观模式(Java版本)
  • Spark和Hadoop的区别和联系
  • 深入理解 DML 和 DQL:SQL 数据操作与查询全解析
  • Java BIO、NIO、AIO、Netty面试题(已整理全套PDF版本)
  • 【NVIDIA】Isaac Sim 4.5.0 加载 Franka 机械臂
  • CMake execute_process用法详解
  • 【Spring Boot基础】MyBatis的基础操作:日志、增删查改、列名和属性名匹配 -- 注解实现
  • 使用 inobounce 解决 iOS 皮筋效果导致的无法下拉刷新
  • pytest-项目结构
  • 管道位移自动化监测方案
  • neo4j-community-3.5.5-unix.tar.gz安装
  • leetcode 647. Palindromic Substrings
  • 从规则到大模型:知识图谱信息抽取实体NER与关系RE任务近10年演进发展详解
  • DSRAM介绍
  • 美创科技20周年庆典顺利举行
  • npm -v npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。来看看永久修改执行策略!
  • Pytorch的极简transformer用于时间序列预测
  • 负载均衡与实时调度—LSF
  • 精益数据分析(10/126):深度剖析数据指标,驱动创业决策