如何根据项目、资源做微服务架构中的服务拆分

前言

最近几年微服务架构开始流行起来,单体应用在部署效率、开发成本、系统可用性方面不如微服务架构。那么单体应用如何向微服务架构转变呢,这里就需要服务化拆分。

服务化拆分

服务化拆分有两种方式:

拿个简单的社交网站为例,网站有首页内容模块,评论模块,主页模块和私信模块等。

纵向拆分:

纵向拆分就是按照业务来分,分为首页内容服务、评论服务、主页服务和信息服务。像这种功能比较独立的模块都分成服务。

横向拆分:

横向拆分是按照公共功能来拆分,标准是按照是否有公共的被多个其他服务调用,且依赖的资源独立。上面的网站中,首页内容模块、评论模块、主页模块都用到了用户信息,如果用户信息修改了需求,这些模块也都需要重新上线。如果将用户信息拆分出来,成为独立的服务。上线成本就降低了。

因地制宜

两种拆分方式已经介绍完了,但是怎样拆更适合公司里即将服务化的项目呢?

这里给出几点建议:

1. 可以考虑将两种拆分方式结合使用,首先整理公用的模块,将其服务化处理。接着根据业务耦合程度,将相对独立的模块拆分成服务。

2. 微服务架构在系统运维、问题追踪、分布式事务方面复杂度比单体应用高,如果系统开发人员较少,或者业务相对不复杂的项目,不建议服务化。微服务架构主要解决单体应用膨胀的问题。

3. 如果拆分出的服务太多以至于开发人员手忙脚乱,可考虑适当服务合并。

4. 即使没有服务化,单体应用在模块分配方面设计得好,以后项目服务化会更容易。

5. 如果不确定如何横向拆分,可以先纵向拆分,在项目发展一段时间后,看哪些功能是其他业务系统频繁调用的,抽离出来做服务化处理。

6. 业内架构师给出可参考的数据:10个开发人员参与的项目就适合服务化了。3个开发人员开发一个新服务。一个开发人员维护不超过 3 个微服务为宜。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值