一些微服务拆分的浅见
共 2748字,需浏览 6分钟
·
2021-07-27 17:16
这里是Z哥的个人公众号
每周五11:45 按时送达
当然了,也会时不时加个餐~
我的第「201」篇原创敬上
业务已在市场站稳脚跟,规划中业务发展速度未来可能会加速。
开发人员持续扩张,并且未来还将继续。
平均单人开发效率下降。多个开发人员之间的工作相互影响、依赖,导致解决这些冲突所花费的成本占到了总开发成本的 30%以上。比如,提交的代码冲突、你等我 coding 完才能继续 coding 这种(往往这样的情况下,每个迭代的版本也很大)。
统一拆分原则
基础设施建设
高内聚低耦合
闭包原则
接口隔离
演进思维
避免循环依赖
消息队列
缓存
日志系统
服务治理
监控
网关
配置中心
数据访问组件
深入理解业务,从中定义出隐含的实体、值对象。
从实体对象中找出聚合根,根据实体、值对象与聚合根的依赖关系,建立聚合。
根据业务场景等环境因素,划分限界上下文。这里的限界上下文就可以与拆分出来的微服务一一对应。
两个限界上下文之间的依赖应该越少越好。并且依赖的上游不需要知道下游的信息。比如订单 service 依赖商品 service ,但是商品 service 无需知道订单 service 的存在。
推演可能的未来业务,如果能响应业务变化(不一定 100%满足),则证明该抽象是符合未来预期的,可以在一段时间内支撑业务的持续发展。
是否经常变动
复用程度的高低
是否有特殊的要求(高性能、安全性等)
数据库瓶颈。
增加人员对开发效率提升的边际效益递减
运维成本指数级增加。
业务已在市场站稳脚跟,规划中业务发展速度未来可能会加速。
开发人员持续扩张,并且未来还将继续。
平均单人开发效率下降。多个开发人员之间的工作相互影响、依赖,导致解决这些冲突所花费的成本占到了总开发成本的 30%以上。比如,提交的代码冲突、你等我 coding 完才能继续 coding 这种(往往这样的情况下,每个迭代的版本颗粒度不得不变得很大)。
统一拆分原则
基础设施建设
推荐阅读:
原创不易,如果你觉得这篇文章还不错,就「点赞」或者「在看」一下吧,鼓励我的创作 :)
也可以分享我的公众号名片给有需要的朋友们。
如果你有关于软件架构、分布式系统、产品、运营的困惑
可以试试点击「阅读原文」