架构:微服务该拆多少应用?是7个!

本文探讨了微服务拆分的好处,如降低复杂度、便于维护,但也指出可能带来的问题,如系统复杂性增加和成本上升。拆分原则包括反认知局限、根据团队人数来决定服务数量以及重视模块化。建议团队人数在10人左右时,服务数量控制在3到7个。强调了做好模块化,使得拆分和合并更加灵活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天这里只谈一个字:拆!像业务领域怎么划、市面上的东西五花八门,真货假货一大堆,扯起来比较麻烦。

拆多少?7个!


拆分的好处是什么?

有个paper最早提出了模块化这个词。那时还是在造硬件,故障率特别高,为了降低功能的复杂度,把硬件拆成各种小模块,这样就可以分开测试了。它不是解决模块复用的问题,而是解决整体复杂度过大。

微服务一样的,按功能内聚、单个应用复杂度降低,维护成本也降低了。还有一些其他目的,譬如流量隔离、整齐划一、增强复用性等。

那坏处呢?有可能没啥好处,也有可能总体成本变大。像依赖关系理不清,反而导致系统变复杂了,一个需求可能改多个地方。部署的机器变多了,可能还是一笔不小的开销。本地数据库事务不能用了。等等。

好坏是没有标准的,在这件事上。(质量、安全等非功能性除外)


拆的原则是什么?​​​​​

(一)反认知局限、反自己、克制自己

单体的人想拆服务,拆服务的人想单体。就像围城。

我开始出来工作,公司就是微服务的文化,不同领域独立出来,不同层独立出来。因此,微服务在我最早的世界观里,这被认为是天经地义的。

某年公司开始做成本,我偷偷数了下部门里的应用数和机器数,我负责的团队居然应用最少、机器最少。因为那几年我一直在反着思考,开项目相对保守。再后来去北京总部一看,我还是吃了一惊,居然会有这么大的单体,居然还能跑……所以直到今天,我都很好奇,单体的极限在哪里?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值