首页 游戏 软件 资讯 排行榜 专题
首页
科技数码
告诉我!微服务,究竟拆分到什么粒度才合适?

告诉我!微服务,究竟拆分到什么粒度才合适?

热心网友
72
转载
2025-12-15

随着数据量、并发量、业务复杂度的增长,互联网架构会出现一些问题,“服务化”是一个很好的解决上述痛点的方案。又有童鞋问我说,那微服务架构多“微”才合适?

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

《微服务架构的六大好处》中提到,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以下问题:

代码到处拷贝;底层复杂性扩散;基础库(so/jar/dll)耦合;SQL质量得不到保障,业务相互影响;数据库耦合;

“服务化”是一个很好的解决上述痛点的方案。

又有童鞋问我说,那微服务架构多“微”才合适?

一般有这样四类实践。

实践一:统一服务层。

这是最粗犷的玩法,所有基础数据,都通过一个统一的服务来进行访问。

在业务不是特别复杂的时候,这不失为一个快速分层的方案,一旦业务变得复杂,服务层会变得非常重,成为耦合焦点。

以微信场景为例,假设通过一个通用的服务层来访问基础数据。

则只有一个统一的服务层,用户信息,好友信息,群组信息,消息信息都通过这个服务层来访问。

实践二:一个子业务一个服务。

如果所有的数据访问都通过一个服务层来访问,那么一行代码出故障,就将影响整个服务,所以更合理的做法是在服务层进行拆分。

服务层架构如何细分?

垂直拆分是个好的方案,将子业务分拆,那么微信的服务化架构或许会变成下面的样子:

用户相关的子业务,访问user服务;好友相关的子业务,访问friend服务;群组相关的子业务,访问group服务;消息相关的子业务,访问msg服务;

这样的话,一个服务出问题也不会影响其他服务,与此同时,数据层也按照业务垂直拆分开了。

服务粒度变细之后,出现一个新的问题,业务与服务的连接关系变复杂了,有什么好的优化方案么?

常见的,加入一个高可用服务分发层(Service Mesh不就是这么干的么),并在协议设计时加入服务号,可以减少蜘蛛网状的依赖关系:

调用方依赖分发层,传入服务号;分发层依赖服务层,通过服务号参数分发;

实践三:一个数据库对应一个服务。

数据访问服务最初是从DAO/ORM的数据访问需求过来的,所以有些公司也有一个数据库一个服务的玩法。

一个子业务对应一个服务的玩法如下图:

服务层,整个群业务是一个服务;存储层,实际可能对应了群信息、群成员、群消息等多个数据表;

拆分成一个数据库一个服务,则架构会变成下面的样子:

群信息库,群成员库,群消息库之间也解耦开,不会相互影响。

实践四,一个接口对应一个服务。

微服务架构中,更极端的,甚至一个接口对应一个微服务。

这样的话,架构就从:

进化为:

修改群信息服务;增加群信息服务;获取群信息服务;

多个服务操纵同一个数据库,任何接口服务出问题,都不会影响其他接口服务。使用这种方案的,一般与开发语言特性结合比较紧密,例如golang。

上文中谈到的服务化与微服务,不同粒度的服务化各有什么优劣呢?

总的来说,细粒度拆分的优点有:

服务都能够独立部署;扩容和缩容方便,有利于提高资源利用率;拆得越细,耦合相对会减小;拆得越细,容错相对会更好,一个服务出问题不影响其他服务;扩展性更好;

细粒度拆分的不足也很明显:

拆得越细,系统越复杂;系统之间的依赖关系也更复杂;运维复杂度提升;监控更加复杂;出问题时定位问题更难;

互联公司,以“子业务”作为微服务粒度是最常用,订单服务,用户服务,支付服务等等。

知其然,知其所以然。

思路比结论更重要。

来源:https://www.51cto.com/article/824450.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

分布式与微服务的核心区别详解
科技数码
分布式与微服务的核心区别详解

本文,我们分析了分布式系统和微服务架构,虽然都涉及到多个独立的组件协同工作,但两者的侧重点和应用场景存在显著差异。分布式系统更关注资源的分布与任务的分解,强调系统的整体高可用性和可靠性;而微服务架构

热心网友
02.09
当AI微服务赋能传统编排:实现服务自主思考的变革
AI
当AI微服务赋能传统编排:实现服务自主思考的变革

随着服务规模扩张,对人工定义策略、配置及运维阈值的依赖也日益加深。但庞大的规模也必然伴随更精简的自动化机制以避免瓶颈。于是新的问题来了:是否存在足够自主的智能体接掌运维重任,以保证微服务真正实现自我

热心网友
01.28
告诉我!微服务,究竟拆分到什么粒度才合适?
科技数码
告诉我!微服务,究竟拆分到什么粒度才合适?

随着数据量、并发量、业务复杂度的增长,互联网架构会出现一些问题,“服务化”是一个很好的解决上述痛点的方案。又有童鞋问我说,那微服务架构多“微”才合适? 《微服务架构的六大好处》中提到,随着数据量、并

热心网友
12.15
用 Rust 重写 Java 微服务后,我的真实得失总结
科技数码
用 Rust 重写 Java 微服务后,我的真实得失总结

罪名?我把一个叫 “Billing-Quotes” 的、波澜不惊的 Java 微服务(13 个上游)用 Rust 重写了。p95 更瘦了、CPU 更冷静、内存更低,基础设施账单开始像小冰箱数字那样往

热心网友
12.02
微服务架构的10个避坑指南:跨越技术陷阱与组织协作难题
科技数码
微服务架构的10个避坑指南:跨越技术陷阱与组织协作难题

João Alves 的观察是清醒而深刻的:多年过去,我们并没有真正“解决”这些问题,只是学会了与混乱共存。工具在进化,但分布式系统的根本性挑战——延迟、一致性、可观测性——并未消失。 2014 年

热心网友
11.30

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

《三国:天下归心》香香连击队成员推荐
游戏攻略
《三国:天下归心》香香连击队成员推荐

《三国:天下归心》香香连击队全面解析:后期最强阵容搭配攻略 在策略手游《三国:天下归心》中,如何打造一支能够主宰战局的后期王牌队伍?本篇将为您深入剖析以孙尚香为核心的“香香连击队”终极搭配方案。该阵容由孙尚香、蔡文姬、貂蝉三位核心武将构成,其独特之处在于通过蔡文姬与貂蝉的完美辅助联动,极大化触发孙尚

热心网友
04.03
爱奇艺极速版如何查看营业执照
手机教程
爱奇艺极速版如何查看营业执照

爱奇艺极速版营业执照信息查询全攻略 在使用爱奇艺极速版应用时,无论是出于消费保障、商务合作考量,还是日常维权需要,核实其背后的实际运营主体与工商信息都是十分必要的环节。查询其营业执照信息有着明确且可靠的操作路径,可以帮助用户清晰了解服务提供方的合法资质。 官方权威途径:国家企业信用信息公示系统查询

热心网友
04.03
红色沙漠堕落之神任务闪电柱解谜答案一览
游戏攻略
红色沙漠堕落之神任务闪电柱解谜答案一览

在《红色沙漠》的“堕落之神”任务中,古代闪电装置的解谜环节是挑战巨化泰坦BOSS前的核心难点。整个电塔谜题由五座塔构成,其核心在于正确的激活与连接顺序。为了让各位冒险家能快速通关,本篇攻略将详细解析闪电塔的正确操作步骤。咱们这就开始,一步步点亮所有的电塔。 《红色沙漠》堕落之神任务:闪电塔解谜全流程

热心网友
04.03
洛克王国世界炽心勇狮图鉴
游戏攻略
洛克王国世界炽心勇狮图鉴

洛克王国炽心勇狮全面解析:技能、获得方法与实战指南 在《洛克王国》的众多宠物中,炽心勇狮以其传奇守护者的身份和强大的火焰力量而备受瞩目。作为火系宠物的代表之一,它的核心特征在于那颗永不熄灭的火焰心脏,这不仅是它力量的象征,更是其所有强大技能的能量源泉。由炽心勇狮喷发出的烈焰,拥有随着战斗进程而不断增

热心网友
04.03
洛克王国世界公平鸽图鉴
游戏攻略
洛克王国世界公平鸽图鉴

洛克王国公平鸽图鉴详解:裁判型宠物的属性技能与获取攻略 在洛克王国的众多宠物当中,公平鸽以其鲜明的裁判官形象与独特的对战定位,成为了许多玩家关注的对象。这只严格恪守自身准则的宠物,完美诠释了何为“公正严明”。它的行事守则堪称一套独特的生存哲学:执着于介入每一场争执,绝不因任何原因延误“出庭”,坚持做

热心网友
04.03