4006-998-758
3000+课程任你选择
系统架构全局剖析与实战
研发学院 系统架构 开课时间:2023-05-18
戴昊

现任创业AI公司研发技术总监负责带领团队研发计算机视觉、AI安防及大数据相关产品。15年+ 大型软件产品架构经验。曾为日本第一,世界第二的瑞穗银行(Mizuho Bank);世界第二大证券交易所 – 东京证券,五十铃汽车开发企业级系统。曾给深圳证券交易所,深圳证券,招商银行信用卡中心,平安金融,中国电信,DELL 讲授过企业级架构及重构与模式的课程。擅长企业级系统架构,领域驱动设计,重构与模式。


查看老师详情
课程内容


课程大纲

Day1:   全局分析解构系统宏观架构


一、演进中的架构

1.服务架构演进史

2.原始分布式时代

3.单体系统时代

4.SOA 时代

5.微服务时代

6.后微服务时代

7.无服务时代


二、5视图法软件架构

1.逻辑架构

2.逻辑架构的核心:模块划分、接口定义、领域模型细化

3.逻辑架构常用表达图形

4.开发架构

5.开发架构关注点:源代码、第三方SDK、框架、中间件、工具包

6.开发架构与领域驱动设计分层

7.运行架构

8.运行架构关注点:系统的并发、同步、通信

9.运行架构与流量治理框架

10.物理架构

11.物理架构考量点:安装和部署需求,系统的可靠性、可伸缩性、持续可用性、性能和安全性

12.数据架构

13.数据架构关注点:持久化数据的存储方案

14.实体及实体关系数据存储格式,数据传递、复制、同步等策略。


三、通信架构 – 如何访问远程服务

1.进程间通信

2.通信的成本

3.三个基本问题

4.统一的 RPC / 分裂的 RPC

5.REST 设计风格

6.理解 REST

7.RMM 成熟度

8.不足与争议


四、数据持久化与事务处理

1.实现事务原子性和持久性

2.实现隔离性

3.全局事务

4.共享事务

5.分布式事务

6.CAP 与 ACID

7.可靠事件队列

8.TCC 事务

9.SAGA 事务

10.案例:银行跨行转账业务TCC实例


五、跨网络边界的透明多级分流系统架构

1.客户端缓存:强制缓存 / 协商缓存

2.域名解析

3.传输链路

4.连接数优化

5.传输压缩

6.快速 UDP 网络连接

7.内容分发网络

8.路由解析

9.内容分发

10.CDN 应用


六、分布式系统架构中的负载均衡

1.负载均衡

2.数据链路层负载均衡

3.网络层负载均衡

4.应用层负载均衡

5.均衡策略与实现

6.案例:负载均衡解决方案在银行中起什么作用

7.服务端缓存

8.缓存属性与风险


七、架构安全性

1.认证

2.认证的标准

3.认证的实现

4.授权

5.RBAC

6.OAuth2

7.凭证

8.Cookie-Session

9.JWT

10.保密

11.保密的强度

12.客户端加密

13.密码存储和验证

14.传输

15.摘要、加密与签名

16.数字证书

17.传输安全层

18.验证


八、分布式架构中的服务发现与路由

1.服务发现

2.服务发现的意义

3.可用与可靠

4.注册中心实现

5.网关路由

6.网关的职责

7.网络 I/O 模型

8.BFF 网关

9.客户端负载均衡

10.客户端负载均衡器

11.代理负载均衡器

12.地域与区域


九、分布式架构中的流量治理

1.服务容错

2.容错策略

3.容错设计模式

4.流量控制

5.流量统计指标

6.限流设计模式

7.分布式限流

Day2:   基于领域驱动设计的微观架构原理与实现


一、领域驱动设计架构总述

1.分层架构在领域驱动下的演进

2.界限上下文与架构

3.六边形架构 / 端口与适配器 / 整洁架构

4.CQRS架构

5.在CQRS中处理具有最终一致性的查询模型

6.事件溯源 Event Souring

7.事件溯源和发布事件

8.幂等方式处理消息

9.使用快照提升性能

10.管道与过滤器

11.SAGA (消息驱动事务)

12.协同式与编排式

13.SAGA下实现隔离


二、领域层架构: 实体 & 值对象   & 聚合

1.唯一标识 / 委派标识

2.案例:实现实体层超类型(Layer Supertype)

3.实战 - 任务分配执行系统 实体行为归属甄别

4.值对象的特征

5.为什么值对象这么容易被忽略

6.案例:地址建模与值对象

7.案例:实现值对象层超类型

8.聚合设计原则

9.聚合设计的过程

10.聚合的一致性边界

11.一个事务中只处理一个聚合

12.聚合内实现事务一致性 / 聚合外实现最终一致性

13.案例:更新订单状态与库存扣减

14.聚合设计的注意点


三、应用服务层架构

1.用例 (Use Case) 与应用服务

2.微服务的网关 与 应用服务 之间的关系

3.应用服务中的 编排,转换,验证,转发

4.工作单元 (Unit of Work)

5.数据传输对象 (Data Transfer Object)

6.事务脚本 (Transaction Script) 与领域模型

7.依赖注入在应用服务中的使用

8.案例:实现应用服务

9.应用服务的关注点

10.实战 - 任务分配执行系统 应用层构建


四、领域服务层架构

1.领域服务的幂等性

2.案例:实现领域服务

3.实战 - 任务分配执行系统 领域服务层构建


五、资源库层架构

1.集合特性

2.资源库与数据访问层的区别

3.资源库的误解

4.资源库的实现要点

5.案例:资源库的实现

6.领域模型 VS 数据模型

7.案例:泛型资源库

8.实战:实战 - 任务分配执行系统 持久化


六、事件驱动架构

1.领域事件是领域建模中极其重要的部分

2.事务一致性,高并发下的窘境

3.最终一致性,妥协带来高扩展性

4.原则:一个事务中只对一个聚合进行修改

5.案例:实现抽象事件源,发布事件源

6.微服务之间如何稳健的发布与消费事件

7.如何保证发布事件的原子性

8.使用事件表发布事件

9.案例:如何实现事件感知聚合根

10.案例:如何实现事件感知资源库

11.如何通过 AOP 进行通用的事件处理


七、CQRS架构

1.基于数据模型的读操作

2.基于领域模型的读操作

3.读写分离模型

4.案例:电商系统中的读写分离场景

5.单进程单实体 + 共享存储/共享模型:Inventory详情查询

6.单进程单实体 + 共享存储/分离模型:Product摘要查询

7.单进程跨实体 + 分离存储/分离模型:Product详情查询(包含Category信息)

8.跨进程跨实体 + 分离存储/分离模型:Order详情查询(包含Product信息)


返回上一级