Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🔥🔥🔥 CongoMall(刚果商城)不一样的TOC商城系统,SpringCloud-Alibaba微服务架构设计,基于DDD领域驱动模型开发,代码设计优雅,涵盖商城核心业务。系统集成分布式锁、分布式事务、分库分表、消息队列、数据搜索、服务监控等功能,区别于八股文问答,真正企业级实战系统。

License

NotificationsYou must be signed in to change notification settings

nageoffer/congomall

Repository files navigation


官网地址:magestack.cn

体验地址:cmall.magestack.cn

刚果商城是个从零到一的C端商城项目,包含商城核心业务和基础架构两大模块。

参照商城系统原型,推出用户、消息、商品、订单、优惠券、支付、网关、购物车等业务模块,通过商城系统中复杂场景,给出对应解决方案。使用DDD 模型开发系统功能,帮助对 DDD 一知半解的开发者树立正确地开发思路。

如果对开源感兴趣,可以关注马哥的中间件项目:动态线程池框架Hippo4j。6.2kStar,43家企业使用。

有几位同学参与 Hippo4j 的贡献后,将这段经历写到了简历上,都拿了不错的大厂offer。

📚 能学到什么


刚果商城系统是我从事开发以来,在实际工作中遇到各种场景问题的“疑难杂症”汇总。

这些问题有些是自己遇到的,有些是其他人遇到帮忙解决的,最终把解决方案和代码实战放在刚果商城这个系统里。

这个系统没有很完整的商城业务,但是提供了偏架构层面有用的工具和参考,能帮助大家在实际项目中更好地解决问题。

如果你能够认真且坚持把项目看完,我相信你会收获包括不限于下面这些知识点:

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

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

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

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

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

🛒 大话面试


屏幕前的你是否遇到过网上面经杂乱,不知道如何筛选?八股文内容太多太杂,无法总结有效回答 Battle 面试官?

大话面试小程序提供八股回答、实战项目以及面试真题,助力你在面试中脱颖而出。面对任何面试官都信心十足!

🤩 联系我


开源不易,右上角点个 Star 鼓励一下吧!

如果大家想要实时关注 CongoMall 更新的文章以及分享的干货的话,可以关注我的公众号。

使用过程中有任何问题,或者对项目有什么建议,关注公众号回复:加群,和1000+ 志同道合的朋友交流讨论。

image

🔨 如何开始


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

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

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

1)商城核心业务

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

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

image

2)基础架构

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

image

👍 服务列表


刚果商城项目是马哥从零到一写出来的,当前已开发模块如下所述,没有完成的请耐心等待。

模块名称服务名称访问地址
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
10congomall-bff商城聚合层(BFF)http://localhost:8009

🚅 接口请求


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

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

如果需要通过 Apifox 直接调用,需要安装对应浏览器内网插件,这里把插件安装包装上,跟着教程安装即可使用。

安装文档:https://www.apifox.cn/help/app/web/browser-extension

🛡 模块介绍


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

├── 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  || -- # 开发工具包

📈 技术选型


当前暂时先梳理后端技术,前端开发后再行梳理。

技术名称官网
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

About

🔥🔥🔥 CongoMall(刚果商城)不一样的TOC商城系统,SpringCloud-Alibaba微服务架构设计,基于DDD领域驱动模型开发,代码设计优雅,涵盖商城核心业务。系统集成分布式锁、分布式事务、分库分表、消息队列、数据搜索、服务监控等功能,区别于八股文问答,真正企业级实战系统。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp