找回密码
 立即注册

又发现一个开源商城项目,谷粒商城外又多了个选择

匿名  发表于 2023-4-4 10:05:39 阅读模式 打印 上一主题 下一主题
官网地址:https://magestack.cn
刚果商城是个从零到一的 C 端商城项目,包括商城焦点营业和根本架构两大模块。
参照商城系统原型,推出用户、消息、商品、定单、优惠券、付出、网关、购物车等营业模块,经过商城系统中复杂场景,给出对应处理计划。利用 DDD 模子开辟系统功用,帮助对 DDD 博古通今的开辟者建立正确地开辟思绪。

又发现一个开源商城项目,谷粒商城外又多了个挑选-1.jpg
  若何起头

刚果商城焦点有两块,别离是商城营业和根本架构,经过认真进修别离可以收获以下两种才能提升。

  • 商城营业:经过进修刚果商城中复杂营业处置场景,增加自己的复杂营业处置才能。
  • 根本架构:尝试随着根本架构部分自己把轮子都造一遍,以此进步自己计划设想和公共代码开辟才能。
1)商城焦点营业
今朝前端页面正在开辟中,临时没有开源出来,所以大师需要经过接口请求拜候。接口若何拜候具体看下文。

  • 初始化数据库,比如商品库、定单库、用户库、付出库、购物车库等;
  • 经过 Docker 安装项目中依靠的中心件,比如 Nacos2、MySQL、Seata、RocketMQ 等;
  • 进修接口挪用流程,项目接口今朝全量放入 Apifox 软件中,可经过在线拜候;
  • 检察分歧微办事之间的依靠关系,并按照文档中的描写停止点窜指定参数;
  • 找到自己感爱好的模块功用 Debug 源代码,参考代码设想。

又发现一个开源商城项目,谷粒商城外又多了个挑选-2.jpg
2)根本架构
根本架构相关的代码都在 congomall-framework-all 模块中,可以经过官网检察若何实现,大概经过 视频讲授 来进修若何开辟根本架构代码。

又发现一个开源商城项目,谷粒商城外又多了个挑选-3.jpg
  文档

注:文章里 TODO 的是还没写(耐心期待更新吧)
入门预备

  • 加入交换群
  • 初始化数据库
  • 情况搭建

    • MySQL 5.7.x 简易安装摆设
    • Redis 简易安装摆设
    • RocketMQ 4.5.1 安装摆设
    • Nacos 2.1.1 安装摆设
    • Sentinel 1.8.4 安装摆设
    • MinIO 安装摆设
    • Prometheus 安装摆设
    • Grafana 安装摆设
    • Seata 1.5.2 安装摆设
    • Canal 1.1.5 安装摆设
    • SkyWalking 9.3.0 安装摆设
    • XXL-Job 2.3.1 安装摆设

  • 项目说明

    • 接口文档说明
    • 技术架构选型
    • 项目结构说明
    • 商品 SPU、SKU 之间的区分

快速起头

  • 用户办事
  • 购物车办事
  • 商品办事
  • 消息办事
  • 定单办事
  • 付出办事
系统设想

  • 数据库设想
  • 通用系统设想

    • SpringBoot 封装 Web 请求通用返回
    • SpringBoot 封装项目同一异常处置

  • 用户系统设想

    • 电商平台亿级用户若何分库分表



  • 商品系统设想

    • 若何处理商品秒杀库存超卖题目
    • 亿级商品数据若何快速同步三方数据库

  • 定单系统设想

    • 定单&明细表数据若何停止分库分表
    • 若何实现定单 15 分钟未付出自动取消
    • 办事端若何处理用户下单反复
    • 若何保证消息行列不被反复消耗



  • 付出系统设想
  • 消息系统设想

    • 架构师设想的百万数据量平安导入
    • 架构师设想的百万数据量平安导出

场景实战

  • 并发编程

    • 参考 Dubbo 线程池模子实现快速消耗线程池
    • 线程池若何监控,才能帮助开辟者快速定位毛病
    • 揭秘 Java8 ParallelStream 并行流极端情况串行化

  • 散布式架构

    • 若何保证雪花算法集群情况下不反复
    • 完全把握散布式事务 2PC、3PC 模子
    • 从根上了解 Redis 散布式锁演进架构
    • 从 Redisson 源码到红锁 RedLock 算法思惟



  • 利用平安

    • 若何避免数据库敏感信息泄露
    • 若何避免设置文件敏感信息泄露
    • 若何实现前端返回数据脱敏

  • 生产题目

    • 为什么线上异常信息为空,而当地可以一般打印
    • 利用出现 OOM 异常,法式员若何第一时候晓得
    • 焦点接口请求出错,成果忘记打印相关日志



  • 数据库

    • MySQL 单表万万数据量若何深分页优化
    • MyBatis 万万数据量查询不发生内存溢出

  • 分库分表

    • 分库分表若何实现平滑上线 & 回滚
    • 依照时候分库分表,若何依照 ID 查询记录
    • 依照用户分库分表,若何依照定单 ID 查询记录



  • 当地&散布式缓存

    • 若何处理缓存穿透&击穿&雪崩
    • 说说布隆过滤器查询误判和数据不能删除处理计划
    • 若何经过 Caffeine & Redis 实现多级缓存
    • 缓存和数据库分歧性题目若何处理



  • 源码剖析

    • MyBatis 整体架构设想分享
    • 花一个周末,把握 OpenFeign 焦点道理
    • 花一个周末,把握 SpringCloud Ribbon 焦点道理

设想形式实战

  • 设想形式先容

    • 摊牌了!战略形式在项目设想中用得最多
    • 春节时代,我用义务链形式重构了营业代码
    • 火遍全网的 Hutool,若何利用 Builder 形式建立线程池
    • 放弃 EventBus,挑选更文雅的 ApplicationEvent
    • 若何浅显易懂了解什么是 SPI 形式
    • 进修 Mybatis 静态代理扩大拒绝战略

  • 设想形式笼统

    • 死磕设想形式之若何笼统战略形式
    • 死磕设想形式之若何笼统义务链形式

开辟规约

  • Git 利用操纵规约
  • 框架版本号界说
  • 写一手好文档必备的规约
  • 阿里 P7 也在用的编码规约
  • 代码整洁为什么如此重要
  • 若何提升代码质量
  模块分类

刚果商城项目是马哥从零到一写出来的,当前已开辟模块以下所述,没有完成的请耐心期待。
模块称号办事称号拜候地址
1congomall-message消息发送 eg:邮件、公众号、短信等http://localhost:8001
2congomall-customer-user用户办事http://localhost:8002
3congomall-gateway内部网关http://localhost:8003
4congomall-product商品办事http://localhost:8004
5congomall-product-job商品 Job 办事http://localhost:9001
6congomall-cart购物车办事http://localhost:8005
7congomall-order定单办事http://localhost:8006
8congomall-pay付出办事http://localhost:8007
9congomall-basic-data根本数据办事http://localhost:8008
  接口请求

今朝刚果商城已开辟的接口已汇总至下述接口文档中,当地启动对应项目,经过接口文档拜候检察结果。
https://www.apifox.cn/web/project/1038592/apis/api-50106328-run
假如需要经过 Apifox 间接挪用,需要安装对应阅读器内网插件,这里把插件安装包装上,随着教程安装即可利用。
安装文档:https://www.apifox.cn/help/app/web/browser-extension

又发现一个开源商城项目,谷粒商城外又多了个挑选-4.jpg
  模块先容

刚果商城后端系统模块先容以下所示。

又发现一个开源商城项目,谷粒商城外又多了个挑选-5.jpg
  技术选型

当前临时先梳理后端技术,前端开辟后再行梳理。
技术称号官网
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
  项目功用

这是刚写这个项目标时辰出的一版功用图,当前已不再保护,可以作为一个根本入门的参考。

又发现一个开源商城项目,谷粒商城外又多了个挑选-6.jpg
回复

使用道具

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐阅读
站长姓名:王殿武 杭州共生网络科技 创始人 云裂变新零售系统 创始人 飞商人脉对接平台 创始人 同城交友聚会平台 创始人 生活经验分享社区 创始人 站长微信:15924191378(欢迎添加)