当前位置: 首页 > news >正文

强烈推荐 20.7k Star!企业级商城开源项目强烈推荐!基于DDD领域驱动设计模型,助您快速掌握技术奥秘,实现业务快速增长

更多资源请关注纽扣编程微信公众号
在这里插入图片描述

1 项目简介

商城是个从零到一的C端商城项目,包含商城核心业务和基础架构两大模块,推出用户、消息、商品、订单、优惠券、支付、网关、购物车等业务模块,通过商城系统中复杂场景,给出对应解决方案。使用 DDD 模型开发系统功能,帮助对 DDD 一知半解的开发者树立正确地开发思路

2 部署架构图

3 技术学习

  • 基于 DDD 领域驱动模型设计实现的商品、购物车、订单、用户、消息以及支付服务。

  • 掌握分布式锁、分布式事务、分布式搜索、分布式缓存、分布式限流以及分库分表等核心技术。

  • 完成基础组件抽象,规约、缓存、幂等、分布式 ID、数据持久层、脱敏以及日志等底层组件库。

  • 基于 Agent 开发字节码流量监控,监控项目接口 QPS、响应时间和异常请求等核心指标。

  • 掌握常用设计模式实战场景,策略、责任链、装饰器、观察者以及适配器等设计模式

4 核心模块

商城核心有两块,分别是商城业务和基础架构,通过认真学习分别可以收获以下两种能力提升。

  • 商城业务

    通过学习刚果商城中复杂业务处理场景,增加自己的复杂业务处理能力。

  • 基础架构

    尝试跟着基础架构部分自己把轮子都造一遍,以此提高自己方案设计和公共代码开发能力

商城核心业务

目前 前端页面 正在开发中,暂时没有开源出来,所以大家需要通过接口请求访问。接口如何访问详细看下文

1)初始化数据库,比如商品库、订单库、用户库、支付库、购物车库等;
2)通过 Docker 安装项目中依赖的中间件,比如 Nacos2、MySQL、Seata、RocketMQ 等;
3)学习接口调用流程,项目接口目前全量放入 Apifox 软件中,可通过在线访问;
4)查看不同微服务之间的依赖关系,并根据文档中的描述进行修改指定参数;
5)找到自己感兴趣的模块功能 Debug 源代码,参考代码设计。

基础架构模块

基础架构相关的代码都在 congomall-framework-all 模块中,可以通过官网查看如何实现,来学习如何开发基础架构代码

5 接口文档

商城已开发的接口已汇总至下述接口文档中,本地启动对应项目,通过接口文档访问查看效果

https://www.apifox.cn/web/project/1038592/apis/api-50106328-run

6 模块介绍

商城后端系统模块介绍如下所示

├── congomall-basic-data  || -- # 基础数据服务
│   ├── congomall-basic-data-application
│   ├── congomall-basic-data-domain
│   ├── congomall-basic-data-infrastructure
│   ├── congomall-basic-data-interface
├── congomall-bff  || -- # 商城 BFF 聚合层
│   ├── congomall-bff-biz
│   ├── congomall-bff-remote
│   ├── congomall-bff-web
├── congomall-cart  || -- # 购物车服务
│   ├── congomall-cart-application
│   ├── congomall-cart-domain
│   ├── congomall-cart-infrastructure
│   ├── congomall-cart-interface
├── congomall-coupon  || -- # 优惠券服务
├── congomall-customer-user  || -- # C端用户服务
│   ├── congomall-customer-user-application
│   ├── congomall-customer-user-domain
│   ├── congomall-customer-user-infrastructure
│   ├── congomall-customer-user-interface
│   ├── congomall-customer-user-mock
├── congomall-framework-all  || -- # 基础组件
│   ├── congomall-base-spring-boot-starter  || -- # 顶层抽象基础组件
│   ├── congomall-cache-spring-boot-starter  || -- # 缓存组件
│   ├── congomall-common-spring-boot-starter  || -- # 公共工具包组件
│   ├── congomall-convention-spring-boot-starter  || -- # 项目规约组件
│   ├── congomall-database-spring-boot-starter  || -- # 数据库持久层组件
│   ├── congomall-ddd-framework-core  || -- # DDD抽象接口组件
│   ├── congomall-designpattern-spring-boot-starter  || -- # 设计模式抽象组件
│   ├── congomall-distributedid-spring-boot-starter  || -- # 分布式ID组件
│   ├── congomall-flow-monitor-agent  || -- # 微服务流量监控组件
│   ├── congomall-httputil-spring-boot-starter  || -- # Http网络调用组件
│   ├── congomall-idempotent-spring-boot-starter  || -- # 分布式幂等组件
│   ├── congomall-log-spring-boot-starter  || -- # 日志打印组件
│   ├── congomall-minio-spring-boot-starter  || -- # 文件存储组件
│   ├── congomall-openfeign-spring-boot-starter  || -- # 微服务调用组件
│   ├── congomall-rocketmq-spring-boot-starter  || -- # 分布式消息队列组件
│   ├── congomall-sensitive-spring-boot-starter  || -- # 前端返回数据脱敏组件
│   ├── congomall-swagger-spring-boot-starter  || -- # 文档API组件
│   ├── congomall-web-spring-boot-starter  || -- # Web组件
│   ├── congomall-xxljob-spring-boot-starter  || -- # 定时任务组件
├── congomall-gateway  || -- # 网关服务
├── congomall-message  || -- # 消息服务
│   ├── congomall-message-application
│   ├── congomall-message-domain
│   ├── congomall-message-infrastructure
│   ├── congomall-message-interface
├── congomall-order  || -- # 订单服务
│   ├── congomall-order-application
│   ├── congomall-order-domain
│   ├── congomall-order-infrastructure
│   ├── congomall-order-interface
├── congomall-pay  || -- # 支付服务
│   ├── congomall-pay-application
│   ├── congomall-pay-domain
│   ├── congomall-pay-infrastructure
│   ├── congomall-pay-interface
├── congomall-product  || -- # 商品服务
│   ├── congomall-product-application
│   ├── congomall-product-domain
│   ├── congomall-product-infrastructure
│   ├── congomall-product-interface
│   ├── congomall-product-job
├── congomall-test-all  || -- # 测试用例
│   ├── congomall-flow-monitor-agent-test
│   ├── congomall-h2-test
│   ├── congomall-oom-test
│   ├── congomall-smooth-sharding-test
│   ├── congomall-yaml-test
├── dev-support  || -- # 开发工具包

7 技术栈

技术名称官网
1Spring Boot基础框架https://spring.io/projects/spring-boot
2MyBatis-Plus持久层框架https://baomidou.com
3HikariCP数据库连接池https://github.com/brettwooldridge/HikariCP
4Redis分布式缓存数据库https://redis.io
5RocketMQ消息队列https://rocketmq.apache.org
6ShardingSphere数据库生态系统https://shardingsphere.apache.org
7SpringCloud Alibaba分布式框架https://github.com/alibaba/spring-cloud-alibaba
8SpringCloud Gateway网关框架https://spring.io/projects/spring-cloud-gateway
9Seata分布式事务框架http://seata.io/zh-cn/index.html
10CanalMySQL 订阅 BinLog 组件https://github.com/alibaba/canal
11MinIO文件存储框架https://min.io
12Swagger3项目 API 文档框架http://swagger.io
13Knife4jSwagger 增强框架https://doc.xiaominfo.com
14Maven项目构建管理http://maven.apache.org
15RedissonRedis Java 客户端https://redisson.org
16Sentinel流控防护框架https://github.com/alibaba/Sentinel
17Hippo4j动态线程池框架https://hippo4j.cn
18XXL-Job分布式定时任务框架http://www.xuxueli.com/xxl-job
19SkyWalking分布式链路追踪框架https://skywalking.apache.org
20JetCacheJava 缓存框架https://github.com/alibaba/jetcache

8 系统截屏

系统首页

商品列表

相片详情

品牌精选

9 源码地址

https://gitee.com/nageoffer/congomall

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • K8S认证|CKA题库+答案| 11. 创建PVC
  • 程序员都能当黑客吗?IT男、码农和程序猿有啥区别?
  • fastapi中实现多个路由请求
  • 头歌OpenGauss数据库-I.复杂查询第4关:计算平均分
  • java在类的定义中创建自己的对象?
  • 如何高效创建与配置工程环境:零基础入门
  • MybatisPlus优雅实现加密?
  • 基于Android studio 订餐、外卖系统
  • 每日一题《leetcode--398.随机数索引》
  • sqlserver 创建表,列及表,列描述
  • 【C++进阶】AVL树
  • MySQL-笔记-02.关系模型基本理论
  • Android四大组件 Broadcast广播机制
  • 微信小程序毕业设计-智慧旅游平台系统项目开发实战(附源码+演示视频+LW)
  • CentOS-7安装教程
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • Create React App 使用
  • download使用浅析
  • FineReport中如何实现自动滚屏效果
  • Java深入 - 深入理解Java集合
  • laravel5.5 视图共享数据
  • leetcode46 Permutation 排列组合
  • Making An Indicator With Pure CSS
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PAT A1120
  • spark本地环境的搭建到运行第一个spark程序
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Vue小说阅读器(仿追书神器)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 分布式熔断降级平台aegis
  • 欢迎参加第二届中国游戏开发者大会
  • 前端知识点整理(待续)
  • 如何学习JavaEE,项目又该如何做?
  • 小程序 setData 学问多
  • gunicorn工作原理
  • Python 之网络式编程
  • 整理一些计算机基础知识!
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​浅谈 Linux 中的 core dump 分析方法
  • # Maven错误Error executing Maven
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #QT项目实战(天气预报)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (5)STL算法之复制
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计ssm电影分享网站
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (图)IntelliTrace Tools 跟踪云端程序
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**