ecommerce-order-service
Introduction: Order backend for Ecommerce.
Tags:
本项目是 Ecommerce 系统的订单(Order)子系统,用于接受用户订单。
Ecommerce 项目包括:
| 代码库 | 用途 | 地址 |
|---|---|---|
| ecommerce-order-service | Order 服务 | https://github.com/e-commerce-sample/ecommerce-order-service |
| ecommerce-order-query-service | Order 查询服务 | https://github.com/e-commerce-sample/ecommerce-order-query-service |
| ecommerce-product-service | Product 服务 | https://github.com/e-commerce-sample/ecommerce-product-service |
| ecommerce-inventory-service | Inventory 服务 | https://github.com/e-commerce-sample/ecommerce-inventory-service |
| ecommerce-shared-model | 共享模型,不含 Spring | https://github.com/e-commerce-sample/ecommerce-shared-model |
| ecommerce-spring-common | Spring 共享基础配置 | https://github.com/e-commerce-sample/ecommerce-spring-common |
| ecommerce-devops | 基础设施 | https://github.com/e-commerce-sample/ecommerce-devops |
技术选型
Spring Boot、Gradle、MySQL、Junit 5、Rest Assured、Docker、RabbitMQ/Kafka
本地构建
在本地构建之前必须完成以下步骤:
- Pull 最新devops代码
- 命令行进入
devops项目的local/rabbitmq目录 - 运行
./start-rabbitmq.sh,用于启动 RabbitMQ,整个 Ecommerce 下的所有服务只需启动 RabbitMQ 一次 - 进入
devops的ecommerce-sample/devops/local/zipkin目录 - 运行
./start-zipkin.sh,用于启动 zipkin 服务器,整个 Ecommerce 下的所有服务只需启动 Zipkin 一次
| 功能 | 命令 | 备注 |
|---|---|---|
| 生成 IntelliJ 工程 | ./idea.sh |
自动打开 IntelliJ |
| 本地运行 | ./run.sh |
自动启动 MySQL,开启 HTTP 8080 端口,监听 5005 调试端口 |
| 本地构建 | ./local-build.sh |
启动启动 MySQL,运行所有类型的自动化测试 |
| 停止本地 MySQL | ./gradlew composeDown |
将清空所有数据 |
| 清空本地 MySQL | ./mysql-clean-local.sh |
不会重建 MySQL 实例 |
| 登录本地 MySQL | ./mysql-login-local.sh |
|
| 手动启动 MySQL | ./gradlew composeUp |
|
| 发布 sdk | ./publish-sdk.sh |
可以通过修改gradle.properties文件中的version指定版本 |
领域对象
| 领域对象 | 中文名 | 业务功能 |
|---|---|---|
| Order | 订单 | 表示用于下的订单,包含多个产品及其数量 |
测试策略
| 测试类型 | 代码目录 | 测试内容 |
|---|---|---|
| 单元测试 | src/test/java |
包含核心领域模型(包含领域对象和 Factory 类)的测试 |
| 组件测试 | src/componentTest/java |
用于测试一些核心的组件级对象,比如 Repository |
| API 测试 | src/apiTest/java |
模拟客户端调用 API |
技术架构
技术架构图
部署架构
部署架构图
外部依赖
列出项目所依赖的其他系统,比如订单系统依赖于会员系统。
环境信息
列出各个环境的访问方式,数据库连接等。
编码实践
列出常用的公共的编码实践方式。
FAQ
常见问题列表
