且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)

更新时间:2021-11-29 19:07:33

cloud Alibaba项目

架构演进

单体架构

统一在一个程序中 共享数据库和缓存,部署上线简单

缺点明显,代码耦合严重 牵一发而动全身

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


垂直架构

优点:服务,部署独立,水平扩展容易

缺点:搭建复杂,服务之间关系错综复杂,维护困难

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


SOA架构

开始有了分块的功能划分,但是还是通过一个总线,去调用各个服务节点

优点:提供了底层服务的统一路由,方便调用

缺点 : 实现难度较高,不同架构之间也有耦合

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


微服务架构

相比SOA,微服务的入口开始有了变化,不再是直接访问程序,而是通过网关来分派转发

通过过滤的请求会被转发到对应的微服务,每一个服务独立部,运行在不同的机器上,用rest或者http通信

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


认识领域驱动设计

优点,有入口鉴权,功能分布细化,性能卓越

缺点, 项目复杂难度,信息暴露,复杂链路等各种问题

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


对于领域驱动设计的理解

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


理解领域概念,学习领域知识,对领域建模


分析领域模型,推演实体,值对象,领域服务

找出聚合边界,降低服务耦合

为耦合配备储存仓库,数据持久化

实践DDD,并且不断的推到重构


经典分层架构

解读

User Interface 用户接口层 接收用户指令,展示信息

Appllcation 应用程序层 Controller 对外提供服务接口,对内调用领域层

Domain 领域层,相当于是实体对象,领域模型 对应 数据库中的表

infrastructure 基础设施层,为其他层提供基础通用的基础能力,通信能力和持久化机制

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


传统开发:


会在开始之前就设计好数据库的表,去实现需求,后面想要修改就会影响到功能甚至是整体结构


领域驱动设计:


初期关心的是业务,持久化只是为了业务设计后期的考虑


电商工程业务解读,微服务模块拆分

Tips


学习领域知识***的方法就是参考和借鉴


简单理解图

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)



微服务模块拆分

工程入口以及用户鉴权微服务

网关是微服务架构的唯一入口


这里是电商的门面


涉及到


权限鉴定

服务调用

限流等

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)


主要功能服务模块

账户,商品,订单,物流


合理的微服务划分

尽可能让每一个服务减少依赖和与其他服务的交集,***是没有交集

cloud Alibaba电商后台组件实战:架构演进,了解领域驱动设计,项目公共模块编写(1)