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

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

cloud Alibaba项目

架构演进

单体架构

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

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

10.png


垂直架构

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

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

2.png


SOA架构

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

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

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

3.png


微服务架构

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

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

4.png


认识领域驱动设计

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

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

5.png


对于领域驱动设计的理解

6.png


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


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

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

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

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


经典分层架构

解读

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

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

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

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

7.png


传统开发:


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


领域驱动设计:


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


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

Tips


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


简单理解图

8.png



微服务模块拆分

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

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


这里是电商的门面


涉及到


权限鉴定

服务调用

限流等

9.png


主要功能服务模块

账户,商品,订单,物流


合理的微服务划分

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

101.png

相关文章
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
97 2
|
12天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
40 6
|
13天前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
14天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
54 4
|
22天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
40 2
|
1月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
1月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
50 2
|
24天前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益
|
2月前
|
运维 持续交付 API
深入理解并实践微服务架构:从理论到实战
深入理解并实践微服务架构:从理论到实战
133 3
|
1月前
|
前端开发 JavaScript 测试技术
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
35 0