• 强烈推荐 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  || -- # 开发工具包
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    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

  • 相关阅读:
    Java中位运算符优先级低于算术运算符
    HTML5教程之移动端Web页面布局
    计算机毕业设计Java疫情防控管理系统(源码+系统+mysql数据库+Lw文档)
    C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731
    ZooKeeper中节点的操作命令(查看、创建、删除节点)
    【ShardingSphere-proxy +PostgreSQL实现读写分离(静态策略)】
    Ubuntu20.04安装k8s v1.21.0
    【Apollo】开启Apollo之旅:让自动驾驶如此简单
    【好书推荐】计算机考研精炼1000题——考研408不可或缺
    ASO优化关键词篇—关键词到底要不要反复出现
  • 原文地址:https://blog.csdn.net/ya888g/article/details/139204921