前言
在我们进行微服务架构设计和改造过程中,一个不可避免的问题是如何确定服务边界、如何进行服务识别,微服务的划分粒度究竟如何确认。我们可能会听到,服务既不能太大,也不能太小,当然这是一个笼统的概念。那么,问题来了,究竟多大是大,多小是小。
比如,以下原则是否可行?
一个微服务应该包含N行代码
将系统中每一个功能都定义为一个服务
另外,考虑一个问题:如果服务划分太细,会出现什么问题?
服务爆炸
服务交叉引用
代码过度耦合
所以,接下来,我们将讨论在微服务架构设计中,如何进行服务定义与划分。
良好设计的服务包含的五个特征
一个设计良好的服务应包含以下五个特征:
特征一:服务不与其他服务共享数据库
举个例子:如果你定义了一个微服务后台需要访问某个表,与此同时存在别的多个服务也需要访问同一个表,那