《微服务分布式构架开发实战》第2章 模块拆分

本文介绍了微服务架构中模块拆分的重要性及其逻辑,包括拆分对系统复杂度、团队协作、代码维护和硬件资源分配的影响。讨论了单模块、基础模块和复杂模块的概念,强调了模块独立性和低耦合的重要性,以及在处理分布式事务和无状态设计时的挑战。

2.1 拆分逻辑

2.2 单模块

2.3 基础模块

2.4 复杂模块

将完整地使用本地调用方式的垂直应用拆分成多个微小的服务,每个服务模块负责提供各自独立的服务接口,并通过网络调用的方式将各个服务模块组织起来形成完整的微服务系统。

这里介绍微服务架构中拆分模块的基本逻辑,更为完善的模块拆分可以基于领域驱动设计(Domain-Driven Design,DDD)进行。

模块拆分是分布式微服务实施时的困难之一,它将直接影响到系统的复杂度、团队协作、代码维护难度、硬件资源分配等方面。模块拆分得越细,则能够更灵活地分配硬件资源与更方便地进行团队协作,但这样也会增加系统复杂度与代码维护难度,在团队人数较少的情况下无疑增加了负担。拆分模块时需要以具体的业务需求与系统请求压力分布为出发点进行权衡取舍。

系统复杂度

业务的复杂性决定了被拆分的模块之间必然存在一定的依赖,模块被拆分得越细就意味着会产生更多的依赖关系,在拆分解耦的同时必然增加了整个系统的复杂度。

随着业务的丰富不可避免地使系统越来越复杂,我们没有办法拒绝复杂但应通过规范、约定、框架等手段尽量做到结构及代码的清晰与整洁。

团队协作

当垂直应用变得庞大且复杂需要更多的工程师维护时,一般会使用Maven的多模块依赖特性将单一的应用拆分成多个模块,每个模块分给不同的工程师维护,最终团队成员提交模块,根据依赖关系打包成一个应用发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人民邮电出版社有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值