29. 【实战】库存服务代码调试以及打印日志观察服务的运行流程

紧接着上一篇27.【实战】在库存服务中实现缓存与数据库双写一致性保障方案的业务代码,打印普通测试日志,观察功能是否实现。

日志代码

  1. 项目地址:eshop-study,切换到该分支,进行调试测试:
    在这里插入图片描述

  2. 配置自己的mysql
    在这里插入图片描述

  3. 配置自己的redis集群地址;
    在这里插入图片描述

测试流程

  1. 测试场景模拟:
 * 1. 一个商品库存更新请求过来,先删除redis中的缓存,然后模拟卡顿5秒钟;
 * 2. 在卡顿5s中,此时发送一个读请求,因为此时redis中没有缓存,应该读取数据库中罪行库存数据刷新到缓存中;
 * 3. 此时读请求会路由到同一个内存队列中,阻塞住,不会执行;
 * 4.5秒钟后,写请求完成了数据库的更新后,读请求才会执行;
 * 5. 读请求执行的时候,会将最新的刚刚更新的库存从数据库中查询出来,然后更新到缓存中;
  1. 就是修改更新库存请求删除redis缓存后停顿的时间,紧接着一个读请求是否在200ms内响应的两种操作;
    在这里插入图片描述
    在这里插入图片描述
  2. 更新库存请求
    在这里插入图片描述
  3. 读请求
    在这里插入图片描述
  4. 第一种:200ms内没有读取到缓存

重新生成强制刷新读请求放到内存队列中

=============日志=============:更新商品库存请求,商品id=1,商品库存数量=80
===========日志===========: 路由内存队列,商品id=1, 队列索引=1
===========日志===========: 工作线程处理请求,商品id=1
===========日志===========: 数据库更新请求开始执行,商品id=1, 商品库存数量=80
===========日志===========: 已删除redis中缓存,key=product:inventory:1
=============日志=============:接受商品库存读请求,商品id=1
===========日志===========: 路由内存队列,商品id=1, 队列索引=1
=============日志=============:在200ms内没有读到redis中的库存缓存
===========日志===========: 路由内存队列,商品id=1, 队列索引=1
===========日志===========: 已更新数据库中的库存,商品id=1,商品库存数量=80
===========日志===========: 工作线程处理请求,商品id=1
=============日志=============:已查询到商品最新的库存数量,商品id=1,商品库存数量=80
=============日志=============:已更新商品库存的缓存,商品id=1,商品库存数量=80,key=product:inventory:1
===========日志===========: 工作线程处理请求,商品id=1
=============日志=============:已查询到商品最新的库存数量,商品id=1,商品库存数量=80
=============日志=============:已更新商品库存的缓存,商品id=1,商品库存数量=80,key=product:inventory:1
  1. 第一种:200ms内读取到缓存
    在这里插入图片描述
=============日志=============:更新商品库存请求,商品id=1,商品库存数量=80
===========日志===========: 路由内存队列,商品id=1, 队列索引=1
===========日志===========: 工作线程处理请求,商品id=1
===========日志===========: 数据库更新请求开始执行,商品id=1, 商品库存数量=80
===========日志===========: 已删除redis中缓存,key=product:inventory:1
=============日志=============:接受商品库存读请求,商品id=1
===========日志===========: 路由内存队列,商品id=1, 队列索引=1
===========日志===========: 已更新数据库中的库存,商品id=1,商品库存数量=80
===========日志===========: 工作线程处理请求,商品id=1
=============日志=============:已查询到商品最新的库存数量,商品id=1,商品库存数量=80
=============日志=============:已更新商品库存的缓存,商品id=1,商品库存数量=80,key=product:inventory:1
=============日志=============:在200ms内读到了redis中的库存缓存,商品id=1,商品库存数量=80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值