本文是在云平台架构实践(参考这里)中对于如何拆分微服务的一些经验总结。

业务原则

  • 单一责任原则:对于一个微服务而言,具有有限的业务范围,可以帮助我们满足服务开发和交付的敏捷性;
  • 适当的边界:关注微服务的功能范围,一个服务的大小应该等于满足某个特定业务能力所需要的大小;
  • 业务分层: 从整体规划上把业务分层,形成单向依赖,避免微服务之间的网状依赖关系;
  • 颗粒度递增:设计初期先把业务划分到尽可能细,然后依据其它原则合并到适当颗粒度;
  • 非唯一依赖:至少被2个以上其它微服务依赖的功能模块,才有必要独立成一个微服务。

技术原则

  • 部署独立性:能独立于其它微服务部署,一个微服务故障不影响其它微服务;
  • 动态扩展:每个微服务都可以动态的进行x轴和z轴的扩展,并适应云环境下的自动化部署;( 参考这里
  • 领域和应用解耦:提供数据操作能力的领域服务和执行业务逻辑的应用服务解耦;
  • 避免产生频繁的跨库查询;
  • 避免产生频繁的分布式事务。

治理原则

  • 在业务分层的基础上,根据业务细分规则,对微服务分组;
  • 各个分组之间通过API网关集成;
  • 通过API网关实现级轻量级消息路由,鉴权;
  • 运行时管理,如服务降级,限流,监控等可在API网关实现,让微服务功能纯粹;
  • 避免通过数据库集成;
  • 避免部署多个版本来兼容。

相关资料

微服务架构风格

转载于:https://www.cnblogs.com/yorkwu/p/9304227.html

云平台架构实践中的微服务分解原则相关推荐

  1. 王启军:云原生架构下如何拆分微服务?

    王启军,云原生技术架构专家,曾任当当架构师,主导电商平台架构设计,包括订单.支付.价格.库存.物流等.曾就职于搜狐,负责手机微博的研发.十余年的技术历练,也曾作为技术负责人带领过近百人的团队.公众号& ...

  2. Medium 架构实践:避免微服务综合症

    \u003cp\u003e微服务架构的目标是帮助工程师团队更快.更安全.更高质量地交付产品.解耦服务使团队能够快速迭代,并尽可能降低对系统其余部分的影响.\u003c/p\u003e\n\u003cp ...

  3. 阿里P8 “布道师”,谈微服务的应用架构设计(附微服务教程)

    本次分享基于微服务的应用架构设计,内容涉及如何构建一个微服务应用,服务注册与发现,微服务测试和典型的微服务架构设计模式,以及微服务架构在七牛的实践案例. 目录 构建一个微服务应用 服务注册与发现 微服 ...

  4. 架构设计之「 微服务入门 」

    戳蓝字"CSDN云计算"关注我们哦! 作者 | 奎哥 来源 | 不止思考 微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务.一方面这些团队确实很好的推动了微服务 ...

  5. 云原生架构下微服务最佳实践-如何拆分微服务架构

    转自: https://mp.weixin.qq.com/s?__biz=MzI3MzEzMDI1OQ==&mid=2651821066&idx=1&sn=8475f813a8 ...

  6. re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...

    走过路过不要错过 点击蓝字关注我们 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件 ...

  7. 基于微服务和Docker的PaaS云平台架构设计

    基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员 ...

  8. 基于微服务和Docker容器技术的PaaS云平台架构设计

    本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施 ...

  9. 51信用卡在微服务架构下的监控平台架构实践

    一.背景介绍 51信用卡的技术架构是基于Spring Cloud所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战.监控团队在开源vs自研,灵活vs稳定等问题上 ...

最新文章

  1. linux磁盘管理系列一:磁盘配额管理
  2. vscode-git中的U,M和D文件标记含义
  3. 总结redis中对象的类型与编码
  4. near far pointer
  5. 如何通过 HttpWebRequest 上传文件?
  6. 自学Python:旋转图像角度
  7. 资源放送丨《数据模型重构案例分享》PPT视频
  8. IT行业最重要的四件宝--我的实习体会
  9. Netkiller 手札 2019 CHM 格式电子书下载
  10. Doris之磁盘空间管理(重点)
  11. 小米扫地机器人原地不动_小米扫地机器人的4个不可思议
  12. [转帖]Beyond Compare如何进行二进制比较
  13. 如何使用代码获取电脑内存_代码实战 | 如何在 Android 开发中使用协程
  14. 微信小程序踩坑”日记“--Failed to load image xxx (404)
  15. 速卖通奇门+聚石塔流程
  16. FPGA可以转行数字IC验证吗?
  17. 一图读懂 | “数据二十条”
  18. 管理类联考-英语 : 基础 [ 七 ]
  19. C#之HC-05蓝牙配对助手
  20. java鼠标指针锤子,如果用4个技能打不过他,那就用7个

热门文章

  1. 每天拖地好麻烦?用这几招,地板每天光亮如新!
  2. GOF对Builder模式的定义(转载)
  3. 自动生成用户名,密码的方法
  4. 使用ISA Server发布具有Edge角色的Exchange Server环境
  5. vue前端用服务器上路径的图片展示_5分钟教你用nodeJS手写一个mock数据服务器
  6. java 规则引擎_GitHub - javaso/rulegin: 分布式规则引擎系统,重构于开源IOT项目thingboard...
  7. python写服务器端qt客户端_python写一些简单的tcp服务器和客户端
  8. request获取int类型的值_获取通话记录或通讯录的数量为负值
  9. PlayMaker的特殊事件FINISHED
  10. delphi中的函数传参如何传枚举参数_shell脚本的函数介绍使用和工作常用案例。建议收藏...