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

相关文章
|
16天前
|
消息中间件 存储 Java
RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
83 2
|
30天前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
73 0
|
4天前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
4天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
23 5
|
6天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
38 4
|
14天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
30 2
|
29天前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
23 9
|
1月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
30天前
|
消息中间件 监控 Java
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
大数据-109 Flink 体系结构 运行架构 ResourceManager JobManager 组件关系与原理剖析
56 1

热门文章

最新文章