系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

统一服务层

最开始,也是最简单的,仅是抽象出一个服务层,所有的服务都是在一起的,全局只有一个服务的概念,这一服务满足上游的所有调用,并对下游进行操作
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度

子业务服务

统一的服务层不利于扩展部署和维护,按照业务的垂直拆分,进行服务划分,一个业务一个服务,下图就是表现了用户服务、朋友服务、群组服务、消息服务
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度
上游的业务可能会调用多个服务,形成了网状关系,复杂性增大,引入网关进行统一转发可以解决这个问题
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度
调用方通过服务号访问网关,网关通过服务号对调用进行分发

一个数据库一个服务

一个服务可能会对应多个数据库,如下图的群组服务,就是群组信息、群组成员、群组消息三个库,但由一个统一的群组服务进行访问
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度
一个数据库一个服务就是划分为三种服务:
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度
这在按照业务划分服务的粒度上变得更细了

一个接口一个服务

除一个数据库一个服务外,还有更细的粒度,就是按照接口来划分服务,一个接口一个服务:
【成为架构师3-2】服务化:微服务的粒度,究竟要细到什么程度
群组服务包含,更新、添加、获取等接口,按照这些接口再划分为不同的服务

这一粒度太细了,细到依赖于特定的编程语言,如进程轻量级的Go

常用的最佳实践

越细的粒度服务化通常会有以下的优点:

  1. 易于扩容缩容、独立部署
  2. 耦合度小,容错性好

缺点也是显而易见的,那就是复杂

  1. 系统复杂、依赖关系复杂
  2. 运维也更复杂
  3. 配套设施也更为复杂

真正投入生产实践的,是一个权衡的过程,通常,基于业务作为微服务的划分粒度是最佳实践


上一篇回顾:【成为架构师3-1】服务化:微服务架构,究竟解决什么问题
下一篇更精彩:持续更新中…

相关文章:

  • 2021-10-07
  • 2021-12-13
  • 2021-12-13
  • 2022-12-23
  • 2021-06-01
  • 2021-08-20
  • 2021-10-09
  • 2021-04-02
猜你喜欢
  • 2022-01-03
  • 2021-06-11
  • 2021-12-13
  • 2021-08-04
  • 2021-05-03
  • 2021-12-13
  • 2022-12-23
相关资源
相似解决方案