《微服务设计》阅读笔记三
2017-08-08 本文已影响0人
BrianZhang
《微服务设计》,Building Microservices,作者Sam Newman,译者崔力强、张骏,人民邮电出版社,2016年。
笔记中有些内容直接引用原书。
================================================================
第三章 如何建模服务
好的服务是松耦合和高内聚的。这两个词在很多地方都用到了,那么在微服务中分别指什么呢?松耦合指的是服务之间耦合度低,修改一个服务不用导致另一个服务跟着修改。高内聚指的是服务内部,相关的行为都聚集在一个服务里,而不是分散在不同服务中,这样需要修改一个行为时,只要修改一个微服务即可。
限界上下文(bounded context)来自Eric Evans的《领域驱动设计》一书,用来对现实世界领域进行建模。作者比较认同的对该词比较好的定义是“一个由显式边界限定的特定职责”。显示边界是外部与它交互的必经之路。
要能找到限界上下文之间的共享模型,其内部和外部的表现形式往往是不一样的。应该共享特定的模型,而不是共享表示,从而避免紧耦合。
单块系统中的模块可以较好地转化为微服务。不要过早地划分微服务,要等到服务边界清晰以后再进行。
对微服务建模时,要首先考虑其业务功能,再考虑其数据。如果只考虑数据,则常常建模为CRUD这种贫血服务。
根据业务边界,结合组织结构,由粗粒度到细粒度地逐步划分限界上下文。