|
|
@ -63,13 +63,6 @@ docker-compose-env.yml文件运行成功之后,添加Nacos配置:
|
|
|
|
|
|
|
|
|
|
|
|
## 体验 Demo
|
|
|
|
## 体验 Demo
|
|
|
|
|
|
|
|
|
|
|
|
准备工作完成后可以运行 demo 示例,主要根据不同的使用场景,可以分别体验用户下单(分布式事务能力)以及模拟高流量点赞(熔断限流以及削峰填谷的能力)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
首先需要分别启动`integrated-frontend`以及`integrated-gateway`微服务应用。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- `integrated-gateway` 模块是整个最佳实践示例的网关。
|
|
|
|
|
|
|
|
- `integrated-frontend` 为最佳实践示例的简易前端页面。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 分布式事务能力
|
|
|
|
### 分布式事务能力
|
|
|
|
|
|
|
|
|
|
|
|
#### 场景说明
|
|
|
|
#### 场景说明
|
|
|
@ -80,9 +73,7 @@ docker-compose-env.yml文件运行成功之后,添加Nacos配置:
|
|
|
|
- 扣减账户余额
|
|
|
|
- 扣减账户余额
|
|
|
|
- 生成订单信息返回响应
|
|
|
|
- 生成订单信息返回响应
|
|
|
|
|
|
|
|
|
|
|
|
##### 启动测试
|
|
|
|
#### 启动测试
|
|
|
|
|
|
|
|
|
|
|
|
分别启动`integrated-storage`,`integrated-account`,`integrated-order`三个微服务应用。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
访问 `http://integrated-frontend:8080/order` 来体验对应场景。
|
|
|
|
访问 `http://integrated-frontend:8080/order` 来体验对应场景。
|
|
|
|
|
|
|
|
|
|
|
@ -98,11 +89,11 @@ docker-compose-env.yml文件运行成功之后,添加Nacos配置:
|
|
|
|
|
|
|
|
|
|
|
|
而在前面的准备工作中,**初始化业务数据库表**的时候应用新建了一个用户,用户 userId 为 admin,余额为 3 元;同时新建了一个编号为 1 号的商品,库存为 100 件。
|
|
|
|
而在前面的准备工作中,**初始化业务数据库表**的时候应用新建了一个用户,用户 userId 为 admin,余额为 3 元;同时新建了一个编号为 1 号的商品,库存为 100 件。
|
|
|
|
|
|
|
|
|
|
|
|
因此通过上述的操作,应用会创建一个订单,扣减对应商品编号为 1 号的库存个数(100-1=99),扣减 admin 用户的余额(3-2=1)。
|
|
|
|
因此通过上述的操作,应用会创建一个订单,扣减对应商品编号为 1 号的库存个数(100-1=99),扣减 admin 用户的余额(3-2=1)。
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
如果再次请求相同的接口,同样是先扣减库存(99-1=98),但是会因为 admin 用户余额不足而抛出异常,并被 Seata 捕获,执行分布式事务二阶段提交,回滚事务。
|
|
|
|
如果再次请求相同的接口,同样是先扣减库存(99-1=98),但是会因为 admin 用户余额不足而抛出异常,并被 Seata 捕获,执行分布式事务二阶段提交,回滚事务。
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
@ -119,8 +110,6 @@ docker-compose-env.yml文件运行成功之后,添加Nacos配置:
|
|
|
|
|
|
|
|
|
|
|
|
#### 启动测试
|
|
|
|
#### 启动测试
|
|
|
|
|
|
|
|
|
|
|
|
分别启动`integrated-praise-provider`以及`integrated-praise-consumer`模块。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Sentinel 服务熔断降级
|
|
|
|
- Sentinel 服务熔断降级
|
|
|
|
|
|
|
|
|
|
|
|
访问 `http://integrated-frontend:8080/sentinel` 体验对应场景。
|
|
|
|
访问 `http://integrated-frontend:8080/sentinel` 体验对应场景。
|
|
|
@ -129,7 +118,7 @@ docker-compose-env.yml文件运行成功之后,添加Nacos配置:
|
|
|
|
|
|
|
|
|
|
|
|
网关路由点赞服务的限流规则为 5,而在前端通过异步处理模拟了 10 次并发请求。
|
|
|
|
网关路由点赞服务的限流规则为 5,而在前端通过异步处理模拟了 10 次并发请求。
|
|
|
|
|
|
|
|
|
|
|
|
因此可以看到 Sentinel 在 Gateway 侧针对多出的流量进行了服务熔断返回 fallback 给客户端,同时数据库的点赞数进行了更新(+5)。
|
|
|
|
因此可以看到 Sentinel 在 Gateway 侧针对多出的流量进行了服务熔断返回 fallback 给客户端,同时数据库的点赞数进行了更新(+5)。
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|