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

微服务,服务粒度多少合适

项目服务化好处
  • 复用性,消除代码拷贝
  • 专注性,防止复杂性扩散
  • 解耦合,消除公共库耦合
  • 高质量,SQL稳定性有保障
  • 易扩展,消除数据库解耦合
  • 高效率,调用方研发效率提升
微服务拆分实现策略
  • 统一服务层
  • 一个子业务一个服务(最佳实践)
  • 一个库一个服务
  • 一个接口一个服务

微服务拆分以业务拆分优先:采用领域驱动设计(DDD)的限界上下文划分服务边界

实践场景类问题
  • 问题‌:如何拆分单体系统?

    • 识别核心业务链路(如电商的购物流程) 。
    • 优先拆分高频变更模块(如促销服务)。
    • 逐步演进,避免一次性过度拆分 。
  • 问题‌:服务粒度如何权衡?

    • 性能需求:RPC调用链控制在5ms内。
    • 业务复杂度:避免跨服务事务。
技术实现类问题
  • 问题‌:如何保证拆分后的数据一致性?

    • Saga模式:拆分长事务为本地事务链。
    • 最终一致性:通过消息队列(如RabbitMQ)异步同步。
  • 问题‌:服务通信如何设计?

    • 外部标准化:RESTful API
    • 内部高性能通信:gRPC/Dubbo(二进制协议)。
http://www.lryc.cn/news/2378836.html

相关文章:

  • 【Ragflow】22.RagflowPlus(v0.3.0):用户会话管理/文件类型拓展/诸多优化更新
  • 使用PocketFlow构建Web Search Agent
  • 安卓基础(Bitmap)
  • 记录:echarts实现tooltip的某个数据常显和恢复
  • 八股文--JVM(1)
  • 从RPA项目说说RPC和MQ的使用。
  • 【大模型面试每日一题】Day 21:对比Chain-of-Thought(CoT)与Self-Consistency在复杂推理任务中的优劣
  • UUG杭州站 | 团结引擎1.5.0 OpenHarmony新Feature介绍
  • Vue3——父子组件通信
  • 游戏引擎学习第276天:调整身体动画
  • 从开发者角度看数据库架构进化史:JDBC - 中间件 - TiDB
  • Mipsel固件Fuzzing小记
  • 本土DevOps革命:Gitee如何撬动中国企业的数字化转型新动能
  • 关于此站点更改通知.top域名后期将统一更换为snowytime.cn访问,其余top访问进入过渡期
  • 使用python进行人员轨迹跟踪
  • 强化学习入门:马尔科夫奖励过程二
  • JVM 双亲委派机制
  • uniapp -- uCharts 仪表盘刻度显示 0.9999999 这样的值问题处理。
  • BGP团体属性
  • Redis——三大策略
  • Windows 操作系统使用 Tcping 命令检查目标主机端口是否开放
  • 序列化和反序列化:从理论到实践的全方位指南
  • PDF Base64格式字符串转换为PDF文件临时文件
  • 开源RTOS(实时操作系统):nuttx 编译
  • python打包exe报错:处理文件时错误:Excel xlsx file; not supported
  • VUE3 -综合实践(Mock+Axios+ElementPlus)
  • NDS3211HV单路H.264/HEVC/HD视频编码器
  • LeetCode热题100--206.反转链表--简单
  • 来一个复古的技术FTP
  • OpenCV CUDA模块中矩阵操作------分布统计类