微服务架构系列 - 基础篇:服务拆分的维度和拆分前的技术保障

- 1 min

微服务架构系列(四)

上篇分享学院君给大家介绍了微服务与单体应用的对比和优势,以及什么情况下适合使用微服务架构,对于大公司而言,可能之前已经进行过微服务重构,相应的底层服务都已经拆分,所以后续新功能开发会在微服务体系中进行迭代,而对于中小型公司,大部分情况是项目早期采用单体架构以便快速迭代和部署,当业务规模、团队规模成长到一定阶段,不得不需要通过微服务架构对服务进行拆分,对系统进行重构,即下面绿色曲线所代表的情况:

img

服务拆分的维度

如果已经决定要对系统进行微服务重构改造,首先要对耦合在单体应用中的服务进行拆分,那么服务拆分具体该怎么做呢?或者换句话说,服务拆分按照什么标准,以哪些维度作为划分依据?

这里主要有两种方式:

与服务拆分相关联的,还有公司组织架构的调整,原来大家可能都混在一起做开发,现在要根据拆分出来的服务为每个模块配对对应的开发人员,以便实现后续的独立开发、测试、部署和维护,另外可能还要涉及到数据库的拆分、缓存部署的调整。

服务拆分前的技术保障

前面我们多次强调过,伴随着服务的拆分和分布式的部署调用,使得系统架构的复杂性大大增加,为系统引入了很多新的问题,比如运维、配置、问题追踪与系统监控、远程服务发布与调用等,我们必须要做好这些配套的技术保障,才能开始操刀进行微服务重构。这些问题,也是从单体应用迁移到微服务架构时必将面临也必须解决的:

从下一篇开始,我们就将结合一个具体的微服务 RPC 框架来介绍上述问题是如何得到解决的。另外,微服务架构中,还可能要面临的一些问题是分库之后分布式数据库的访问和事务一致性,分布式缓存的设计和访问,以及公共配置中心的访问和设置,还有微服务拆分后部署和运维的复杂性增加,该如何解决等,这些都是我们在做微服务拆分的时候需要考虑到的,后续在高阶部分,学院君将给大家介绍这些问题的解决方案。

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora