深入理解Spring Cloud与微服务构建(第2版)
上QQ阅读APP看书,第一时间看更新

1.3.3 服务的划分

将一个完整的系统拆分成很多个服务,是一件非常困难的事,因为这涉及了具体的业务场景,比命名一个类更加困难。对于微服务的拆分原则,Martin Fowler给出的建议是;服务是可以被替换和更新的。也就是服务和服务之间无耦合,任何一个服务都可以被替换,服务有自己严格的边界。当然这个原则很抽象,根据具体的业务场景来拆分服务,需要依靠团队人员对业务的熟悉程度和理解程度,并考虑与已有架构的冲突、业务的扩展性、开发的风险和未来业务的发展等诸多因素。

领域驱动设计是一个全新的概念,也是一个比较理想的微服务拆分的理念。领域驱动设计通过代码和数据分析找到合理的切分点,并通过数据分析来判断服务的划分边界和划分粒度。过去,在中国很少有公司去落地领域驱动设计这个理念,随着微服务的发展,这一理念在以后有可能会更多地被接受。