一般比较流行的微服务识别方法有业务角度、IT角度和数据角度。
业务角度从业务功能的角度拆分,每个微服务是一个自包含的独立的业务处理单元,遵循原子性原则、单一职责原则,即高内聚低耦合。所谓原子性,即微服务应是一个自包含的独立个体,不依赖于任何其它微服务即可独立运行;所谓单一职责,即微服务只做一件事情,从外部看微服务功能没有二义性。
IT角度从IT管理与运维的角度出发,关注IT技术与运维管理的需要,例如通过流量入口、内外网、水平扩展需求等因素来划分微服务。
数据角度从数据管理的角度出发,关注数据治理需求,例如按数据分区、按数据敏感度、按数据冷热等需求来划分微服务。
除了最常见的这三个角度,有些微服务方法还提出了更多的角度,比如按团队分工,甚至还用到了评分表或优先级象限,以综合多个因素来决定微服务划分是否合理。
该如何选择呢?在我看来,多原则等于无原则。微服务设计的方法越多越混乱,越无法把控。思考角度越多越复杂,结果就越无道理可讲。角度不同立场就不同,要么鸡同鸭讲,要么吵半天得出一个妥协的结果,从哪个角度看都不满意。所以我的选择就只有一个——业务角度ÿ