在平台级微服务治理中,限界上下文与服务边界不一致时如何准确定义领域边界、数据归属和团队职责
旗舰版来源:alibaba资深工程师团队职责划分服务边界划分限界上下文微服务治理
草稿
答案解析
在平台级微服务治理里,我一般不会简单地认为“一个限界上下文就必须对应一个微服务”。限界上下文是领域建模边界,服务边界是工程落地边界,二者可以一致,也可以因为组织、性能、历史系统、部署成本等原因不一致。关键是要把领域边界、数据归属和团队职责定义清楚,否则后面会演变成服务互相调用混乱、数据重复写、责任没人认。
我会从几个层面来处理。
第一,先重新识别领域边界,而不是先看现有服务怎么拆。通常会通过事件风暴、业务流程梳理、核心实体关系、业务规则归属来判断边界。重点看几个信号:
这个概念在不同业务场景下语义是否一致; 业务规则是否由同一批人负责; 数据变更是否高度内聚; 是否有独立的生命周期; 和其他领域之间是协作关系还是强依赖关系。
比如“用户”在账号体系里关注登录、认证、实名,在营销体系里关注会员等级、标签、权益,这两个虽然都叫用户,但语义和规则不一样,就不应该强行放在一个领域模型里。账号域拥有账号身份数据,营销域可以维护会员视角下的用户画像或标签,但不能反向修改账号主数据。
第二,明确数据归属,也就是谁是数据 Owner。我的原则是:一份核心业务数据只能有一个
登录后查看完整内容
