观速讯丨Cloud-Alibaba+DDD商城开源
2023-06-28 01:12:26 来源:程序猿阿嘴
刚果商城是个从零到一的商城项目,包含商城核心业务和基础架构两大模块。
参照商城系统原型,推出用户、消息、商品、订单、优惠券、支付、网关、购物车等业务模块,通过商城系统中复杂场景,给出对应解决方案。使用 DDD 模型开发系统功能,帮助对 DDD 一知半解的开发者树立正确地开发思路。
(资料图)
项目地址领取:点赞+转发,私信【 学习 】即可
刚果商城系统是我从事开发以来,在实际工作中遇到各种场景问题的“疑难杂症”汇总。
这些问题有些是自己遇到的,有些是其他人遇到帮忙解决的,最终把解决方案和代码实战放在刚果商城这个系统里。
这个系统没有很完整的商城业务,但是提供了偏架构层面有用的工具和参考,能帮助大家在实际项目中更好地解决问题。
如果你能够认真且坚持把项目看完,我相信你会收获包括不限于下面这些知识点:
基于 DDD 领域驱动模型设计实现的商品、购物车、订单、用户、消息以及支付服务。 掌握分布式锁、分布式事务、分布式搜索、分布式缓存、分布式限流以及分库分表等核心技术。 完成基础组件抽象,规约、缓存、幂等、分布式 ID、数据持久层、脱敏以及日志等底层组件库。 基于 Agent 开发字节码流量监控,监控项目接口 QPS、响应时间和异常请求等核心指标。 掌握常用设计模式实战场景,策略、责任链、装饰器、观察者以及适配器等设计模式。刚果商城核心有两块,分别是商城业务和基础架构,通过认真学习分别可以收获以下两种能力提升。
商城业务:通过学习刚果商城中复杂业务处理场景,增加自己的复杂业务处理能力。 基础架构:尝试跟着基础架构部分自己把轮子都造一遍,以此提高自己方案设计和公共代码开发能力。1)商城核心业务
目前 前端页面 正在开发中,暂时没有开源出来,所以大家需要通过接口请求访问。接口如何访问详细看下文。
初始化数据库,比如商品库、订单库、用户库、支付库、购物车库等; 通过 Docker 安装项目中依赖的中间件,比如 Nacos2、MySQL、Seata、RocketMQ 等; 学习接口调用流程,项目接口目前全量放入 Apifox 软件中,可通过在线访问; 查看不同微服务之间的依赖关系,并根据文档中的描述进行修改指定参数; 找到自己感兴趣的模块功能 Debug 源代码,参考代码设计。2)基础架构
基础架构相关的代码都在 congomall-framework-all 模块中,可以通过官网查看如何实现,或者通过 视频教学 来学习如何开发基础架构代码。
刚果商城项目是从零到一写出来的,当前已开发模块如下所述,没有完成的请耐心等待。
模块名称 | 服务名称 | 访问地址 | |
1 | congomall-message | 消息发送 eg:邮件、公众号、短信等 | http://localhost:8001 |
2 | congomall-customer-user | 用户服务 | http://localhost:8002 |
3 | congomall-gateway | 外部网关 | http://localhost:8003 |
4 | congomall-product | 商品服务 | http://localhost:8004 |
5 | congomall-product-job | 商品 Job 服务 | http://localhost:9001 |
6 | congomall-cart | 购物车服务 | http://localhost:8005 |
7 | congomall-order | 订单服务 | http://localhost:8006 |
8 | congomall-pay | 支付服务 | http://localhost:8007 |
9 | congomall-basic-data | 基础数据服务 | http://localhost:8008 |
10 | congomall-bff | 商城聚合层(BFF) | http://localhost:8009 |
项目地址领取:点赞+转发,私信【 学习 】即可
目前刚果商城已开发的接口已汇总至下述接口文档中,本地启动对应项目,通过接口文档访问查看效果。
/web/project/1038592/apis/api-50106328-run
如果需要通过 Apifox 直接调用,需要安装对应浏览器内网插件,这里把插件安装包装上,跟着教程安装即可使用。
刚果商城后端系统模块介绍如下所示。
├── 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 | Spring Boot | 基础框架 | /projects/spring-boot |
2 | MyBatis-Plus | 持久层框架 |
|
3 | HikariCP | 数据库连接池 | /brettwooldridge/HikariCP |
4 | Redis | 分布式缓存数据库 |
|
5 | RocketMQ | 消息队列 |
|
6 | ShardingSphere | 数据库生态系统 |
|
7 | SpringCloud Alibaba | 分布式框架 | /alibaba/spring-cloud-alibaba |
8 | SpringCloud Gateway | 网关框架 | /projects/spring-cloud-gateway |
9 | Seata | 分布式事务框架 | /zh-cn/ |
10 | Canal | MySQL 订阅 BinLog 组件 | /alibaba/canal |
11 | MinIO | 文件存储框架 |
|
12 | Swagger3 | 项目 API 文档框架 |
|
13 | Knife4j | Swagger 增强框架 |
|
14 | Maven | 项目构建管理 |
|
15 | Redisson | Redis Java 客户端 |
|
16 | Sentinel | 流控防护框架 | /alibaba/Sentinel |
17 | Hippo4j | 动态线程池框架 |
|
18 | XXL-Job | 分布式定时任务框架 | /xxl-job |
19 | SkyWalking | 分布式链路追踪框架 |
|
20 | JetCache | Java 缓存框架 | /alibaba/jetcache |
项目地址领取:点赞+转发,私信【 学习 】即可
关键词:
[责任编辑:]
相关阅读
- (2023-06-28)观速讯丨Cloud-Alibaba+DDD商城开源
- (2023-06-28)扶残助学圆梦 山西再下达416.1万元-世界新视野
- (2023-06-28)水云归炸900,朱砂234铃铛纪录|焦点快看
- (2023-06-28)广东省客联走访米客智能家居有限公司 环球时讯
- (2023-06-28)万科A:新房市场短期有起伏,总体仍处温和恢复阶段-热推荐
- (2023-06-28)宜宾出台招商方案 推动制造业高质量发展
- (2023-06-28)GMV预计达150亿美元,Tik Tok电商征服东南亚?|环球快报
- (2023-06-28)世界观热点:老师说反馈是什么意思_老师反馈是什么意思
- (2023-06-28)you_will及not及get及hurt_全球快看点
- (2023-06-28)世界热头条丨柴胡寨村_关于柴胡寨村概略
- (2023-06-28)柴胡复生汤_关于柴胡复生汤概略-全球热议
- (2023-06-28)当前看点!斯达半导与深蓝汽车成立半导体公司
- (2023-06-28)今日热门!济宁市人社局全力做好“稳”“扩”“筑”“提”四篇文章
- (2023-06-28)新疆莎车县:万寿菊花开“香满园” 村民增收“软黄金” 焦点报道
- (2023-06-28)融众金融(03963)发盈警 预期年度亏损减少至约1.22亿港元
- (2023-06-28)陕西三本院校排名共19所_陕西三本院校排名 环球观速讯
- (2023-06-28)有偿发帖、操控舆论……网络水军造谣抹黑涉嫌哪些犯罪?
- (2023-06-28)制作啤酒罐树,用心祝福生日女士,送上最特别的60岁礼物!
- (2023-06-28)当前热议!一建报名时间2023年报名时间_一建报名时间2016
- (2023-06-28)新动态:从柔性电池到元宇宙医疗 夏季达沃斯论坛揭示2023新兴技术趋势
- (2023-06-28)环球观点:未来3天海南最高气温37℃,雷阵雨局地打卡
- (2023-06-28)天天最资讯丨前轰炸机领航员王云飞:轰6K驱离的不是航母,另谈几个争议问题
- (2023-06-28)环球快播:生意社:成本&供需双弱 6月环己酮市场行情弱势走低
- (2023-06-28)全球即时:中外学生唱诵王安石诗词 跨千年时空与古人对话
- (2023-06-28)滔搏首季销售额同比增长20%-30%,6月签约多个新品牌 最新
- (2023-06-28)天天速递!惠誉:确认平安银行(000001.SZ)“BB+”长期外币发行人评级,展望“稳定”
- (2023-06-28)当前播报:服务区域经济发展 许昌学院如何当好“最强大脑”
- (2023-06-28)【全球热闻】造船行业深度报告(四):零碳转型东风 替代燃料奇点
- (2023-06-28)“调研热”需循“务实路”
- (2023-06-28)国力通拟向银行申请合计不超过1800万授信 授信期限一年-焦点快看
扶残助学圆梦 山西再下达416.1万元-世界新视野
水云归炸900,朱砂234铃铛纪录|焦点快看
广东省客联走访米客智能家居有限公司 环球时讯
万科A:新房市场短期有起伏,总体仍处温和恢复阶段-




