# on **Repository Path**: PW24/on ## Basic Information - **Project Name**: on - **Description**: on case study - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-13 - **Last Updated**: 2025-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # On case study 时间有些紧张,虽然时间有七天,但实际投入时间没达到10个小时。导致项目结构比较混乱,优化空间很大。部分优化方向写到了TODOS中。 #### 项目结构 #### 启动方式 ##### GUIDE.MD有部份说明 1. 订单项目- 启动docker-compose.yaml (docker-compose --project-directory=. -f docker-compose.yaml up --build) apigateway在端口3000 ~~2. 启动on服务 (npm run start:dev)~~ ~~3. 启动order服务 (npm run start:dev)~~ ~~4. 启动inventory服务 (npm run start:dev)~~ ##### 用户项目 - npm run start:dev user Server在3001 ## 模拟场景说明 ### 模拟场景 本体用于模拟一个电商系统,包含订单、库存、用户三个服务。 用户操作时的鉴权不包含在本次case study中。 #### 库存模型 单SKU -> 单货品 ### 模拟业务流程 模拟用户直接接口请求发起下单。 ### 模拟环境情况 ## 技术选型 - 语言:typescript - 框架:nestjs - 数据库:mysql + typeorm - 消息队列:rabbitmq - 缓存:redis ## TODOS #### INVENTORY 1.考虑多种库存组合,例如: - 引入更多逻辑库存的仓库组合(e.g. tmall, JD...) - 引入预留库存(e.g. 直播库存) 2.考虑多种商货关系,例如: - 多SKU->单货品 - 单货品->多SKU - 多货品=货品组 - 多SKU=组合SKU 3.支持下单扣库存,付款扣库存等多种方案 #### ORDER 1. 支持逆向订单功能 2. 支持回写库存 #### USER 1. 支持passport多种方式登录 #### TECHNIC 1. 持久化消息队列 2. 高可用中间件 3. 日志数据写入ES 4. 限流 5. 数据库分片 6. 容错 7. REDIS脉冲同步数据库 8. 服务发现