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

微服务划分的思考

为什么

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

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

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

单体应用的不足

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

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

微服务优点

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

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

微服务缺点

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

相关文章:

  • [陇剑杯 2021]内存分析(问1)
  • 你学会了些什么220622?--搭建UI自动化
  • 论文速报《Being-0:结合视觉语言模型与模块化技能的人形机器人智能体》
  • 53、Spring Boot 详细讲义(十)(Spring Boot 高级主题)
  • 【Linux】调试工具gdb的认识和使用指令介绍(图文详解)
  • Ubuntu下展锐刷机工具spd_dump使用说明
  • 消息中间件RabbitMQ:简要介绍及其Windows安装流程
  • 2025 活体识别+人脸认证工具类【阿里云api,需要先申请试用】
  • 8. ROS中常见命令
  • VS Code + GitHub:高效开发工作流指南
  • 项目实战 -- 发布管理
  • 考研系列-计算机网络-第四章、网络层
  • LeetCode算法题(Go语言实现)_54
  • java/python——两个行为(操作)满足原子性的实现
  • Web前端:Overflow属性(超出裁剪属性)
  • vllm+vllm-ascend本地部署QwQ-32B
  • MYSQL之基础认识(卸载安装登录, 基本概念)
  • Linux论坛安装
  • 【第四章】19-匹配规则定义
  • JavaScript实现二级菜单
  • 【uniapp-兼容性处理】安卓uView组件中u-input后置插槽不展示
  • Vmware esxi 给现有磁盘增加空间后并扩展系统里磁盘空间
  • Redis 键管理
  • AI Agent认知框架(ReAct、函数调用、计划与执行、自问自答、批判修正、思维链、思维树详解和对比,最后表格整理总结
  • redis-7 安装
  • linux sysfs使用cat无显示的原因:返回值未赋值
  • 《深入解析C++中的explicit关键字:防止隐式转换的利器》
  • C语言main的参数;argc与argv
  • 开源键鼠共享软件的“爱恨情仇“:Deskflow、InputLeap与Barrier的演化史
  • Shell脚本-四则运算符号