浅谈 如果做微服务了 这个模块怎么去划分?

news/2024/11/29 5:40:52/

如果做微服务了 这个模块怎么去划分?

还是高内聚 低耦合的一个思想吧 ,单一职责的设计原则,也是一个封装的思想吧,

业务维度

​ 按照业务的关联程度来决定,关联比较密切的业务适合拆分为一个微服务,而功能相对比较独立的业务适合单独拆分为一个微服务。用户模块,订单模块,视频点播模块。

业务复杂和足够的人力的角度:没有足够复杂到 2~3 个人没法维护的地步,没必要继续将商品服务拆的更细。划分太多,因为人力的不足导致更多的问题,如研发效率大幅下降。

避免环形依赖与双向依赖:

​ 尽量不要有服务之间的环形依赖或双向依赖,原因是存在这种情况说明我们的功能边界没有划分清楚或者有通用的功能没有下沉下来。

独立功能维度

​ 且依赖的资源独立不与其他业务耦合。比如网关模块,日志服务、监控服务

稳定性维度

​ 将系统中的业务模块按照稳定性进行排序。稳定的、不经常修改的划分一块;将不稳定的,经常修改的划分为一个独立服务。比如日志服务、监控服务都是相对稳定的服务,可以归到一起。这个很类似上面提到的2/8原则,80%的业务是稳定的。

高性能维度

把对性能要求较高的模块独立成一个服务,对性能要求不高的放在一起。比如全文搜索,商品查询和分类,秒杀就属于高性能的核心模块。

多种方面去考虑**,主要还是以业务维度去考虑吧 也需要考虑公司团队成员人数**。拆分后的维护成本要低于拆分前。

真的没有绝对的标准,只有合理才是标准。

扩展:

弓箭原理:
image-20230412110444359

平衡拆分粒度可以从两方面进行权衡,一是业务发展的复杂度,二是团队规模的人数。如上图,它就像弓箭一样,只有当业务复杂度和团队人数足够大的时候,射出的服务拆分粒度这把剑才会飞的更远,发挥出最大的威力。

三个火枪手原则: 一种开发的建议

3个人写一个微服务

  • 3 个人负责开发一个系统,系统的复杂度刚好达到每个人都能全面理解整个系统。

  • 3 个人可以形成一个稳定的备份,即使 1 个人休假或者调配到其他系统,

  • 3 个人的技术小组既能够形成有效的讨论,又能够快速达成一致意见


http://www.ppmy.cn/news/42000.html

相关文章

阿里云linux云服务器 安装指定版本node.js

我们在实例管理中找到自己的服务器 然后点击右侧的 远程连接 接着点击理解登录 进入命令窗口 我们在这上面输入 curl -h阿里云的服务器都还是最好会有 curl的 然后 我们输入 sudo curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash下把nv…

CCC 数字钥匙学习笔记 - 车主配对命令

整理了一下CCC组织的汽车数字钥匙Release 3中关于车主配对Owner Paring,过程的APDU指令和数据说明。基本可以算是在车端的角度进行车主配对操作。里面的章节表格编号,都按照CCC数字钥匙Release 3文档中的编号走,方便将来检索对照。 车主配对…

(邱维声)高等代数课程笔记:行列式按一行(列)展开

行列式按一行(列)展开 例题 1:一般地,设 ∣A∣|A|∣A∣ 是一个三阶行列式,则有 ∣A∣∣a11a12a13a21a22a23a31a32a33∣a11a22a33a12a23a31a13a21a32−a13a22a31−a12a21a33−a11a23a32a11(a22a23−a23a32)−a21(a12a3…

如何在DevOps中进行API生命周期管理?

引言 随着DevOps理念在中国企业当中的普及和发展,中国企业DevOps落地成熟度不断提升,根据中国信通院的数据已有近6成企业向全生命周期管理迈进。而在研发全生命周期管理之中,API管理的地位愈发显得重要。随着API数量的大幅增长,也…

Python的输入与输出

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:零基础入门篇 💬个人格言:不断的翻越一座…

【Cesium 编程第一篇】概述、环境搭建、界面介绍

年前年后一直在面试,发现一个奇怪的现象:很多互联网公司经受住三年的疫情冲击,反而在疫情放开的那一刻撑不住了,很多大厂都在批量的裁员:美国硅谷、北京字节、迪士尼中国等等。在北京的朋友也是年后到现在一直没有找到…

XML 简介

文章目录一、XML 简介二、XML 用途总结一、XML 简介 XML 被设计用来传输和存储数据。 HTML 被设计用来显示数据。 XML 指可扩展标记语言(eXtensible Markup Language)。 可扩展标记语言(英语:Extensible Markup Language&#xf…

[MAUI 项目实战] 手势控制音乐播放器(三): 动画

文章目录吸附动画确定位置平移动画回弹动画使用自定义缓动函数多重动画点击动画项目地址上一章节我们创建了手势容器控件PanContainer,它对拖拽物进行包装并响应了平移手势和点击手势。拖拽物现在虽然可以响应手势操作,但视觉效果较生硬,一个…