cloud Alibaba项目
架构演进
单体架构
统一在一个程序中 共享数据库和缓存,部署上线简单
缺点明显,代码耦合严重 牵一发而动全身
垂直架构
优点:服务,部署独立,水平扩展容易
缺点:搭建复杂,服务之间关系错综复杂,维护困难
SOA架构
开始有了分块的功能划分,但是还是通过一个总线,去调用各个服务节点
优点:提供了底层服务的统一路由,方便调用
缺点 : 实现难度较高,不同架构之间也有耦合
微服务架构
相比SOA,微服务的入口开始有了变化,不再是直接访问程序,而是通过网关来分派转发
通过过滤的请求会被转发到对应的微服务,每一个服务独立部,运行在不同的机器上,用rest或者http通信
认识领域驱动设计
优点,有入口鉴权,功能分布细化,性能卓越
缺点, 项目复杂难度,信息暴露,复杂链路等各种问题
对于领域驱动设计的理解
理解领域概念,学习领域知识,对领域建模
分析领域模型,推演实体,值对象,领域服务
找出聚合边界,降低服务耦合
为耦合配备储存仓库,数据持久化
实践DDD,并且不断的推到重构
经典分层架构
解读
User Interface 用户接口层 接收用户指令,展示信息
Appllcation 应用程序层 Controller 对外提供服务接口,对内调用领域层
Domain 领域层,相当于是实体对象,领域模型 对应 数据库中的表
infrastructure 基础设施层,为其他层提供基础通用的基础能力,通信能力和持久化机制
传统开发:
会在开始之前就设计好数据库的表,去实现需求,后面想要修改就会影响到功能甚至是整体结构
领域驱动设计:
初期关心的是业务,持久化只是为了业务设计后期的考虑
电商工程业务解读,微服务模块拆分
Tips
学习领域知识最好的方法就是参考和借鉴
简单理解图
微服务模块拆分
工程入口以及用户鉴权微服务
网关是微服务架构的唯一入口
这里是电商的门面
涉及到
权限鉴定
服务调用
限流等
主要功能服务模块
账户,商品,订单,物流
合理的微服务划分
尽可能让每一个服务减少依赖和与其他服务的交集,最好是没有交集