架构设计:业务域的拆分

一、拆分原则

服务拆分过细导致的问题:

1、性能下降

2、问题定位难度增加

服务粒度匹配团队规模

最佳实践:

1、扩展期:3人对应1个服务

2、维护期:2人对应多个服务

演进式拆分原则

图片

 以模型职责拆分(基于业务逻辑为主)

图片关注点

数据库拆分后数据一致行问题

解决方案:最终一致性来替代分布式事物

实现方式:可靠事件模式(不断重试);补偿模式(补偿/回滚)

二、服务拆分的真实案例解析

拆分需要主要的问题

图片

如何将结构提拆分为服务化架构

图片

识别业务领域及边界

图片

领域划分的一些经验

图片

拆分的策略

图片

最常用的做法

图片

拆分业务如何支持业务扩展

图片

如何安全持续拆分

图片

如何保证拆对了

图片

某教育产品服务化拆分

图片

图片

拆分反例

图片


三、识别业务领域模型及边界

什么是领域模型驱动

领域模型属于解决方法空间

大白话:请假系统是解决人力资源工时问题,属于人力资源领域;电商平台是解决消费者购物问题,属于电商领域

图片

概念介绍

图片

采用领域驱动设计好处

系统的复杂度体现优势

图片

传统软件开发模型

图片

什么是领域驱动设计

图片

图片


领域模型驱动设计相关概念

战略建模&战术建模

图片

问题空间&解决方案空间

图片

核心域&支撑子域&通用子域

图片

理解界限上下文

图片

图片

上下文映射图

图片

领域实体

图片

实体和值对象

图片

聚合(根实体,持久化对象)

图片

聚合根

图片

领域服务

图片

领域事件

图片

例如:银行转账事件

领域建模例子

图片

四、领域建模和划分边界的常见方法

图片用例法建模

图片

基于用例法建模的步骤

图片

用例的识别及表达

B最好的描述

图片

用例示例

推荐用例4

图片

用例法实践

收集名称

图片

构建类与属性

图片

完善类与属性

图片

添加类关联

图片

最终建模结果

图片

事件风暴

1、识别领域建模事件

图片

2、识别领域命令

图片

3、寻找聚合

图片

4、领域边界确认

领域专家、产品、开发人员

图片

四色建模

问题

图片

还原真相

图片

图片

图片

图片

五、领域建模的架构方法和经验

经典的分层架构

图片

六边形架构

图片

领域层鱼技术层关系

在六边形架构中,领域层跟技术层没有关系。可以看作是业务的技术实现,端口层包裹在领域层外,外部要与领域成通信,必须通过接口层来“首肯”。反过来,领域层与外部通信也需要经过接口层。但这种方式一般在技术上的,比如领域对象的管理。

六边形架构鱼SOA、Restful的关系

图片

CQRS-命令查询职责分离

CQRS

图片

图片

图片

事件驱动架构

图片

领域事件

图片

领域事件例子

图片

整体架构

图片

六、电商领域建模案例解析

业务中台定义

图片

中台VS平台

图片

领域建模构建业务中台

图片

建模阶段

图片

实施阶段

图片



选型分层架构

图片

架构动态视角

图片

工程规范

图片

演进

图片

领域建模案例

图片

图片

系统设计

图片

事件案例

图片

领域命令

图片

领域聚合

图片

领域边界

图片

输出领域模型

图片

指导架构及开发

业务重构

业务背景

图片

订单数据域

图片

图片

图片

图片

转自公众号:Dawn持续输出

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值