当前位置: 首页 > news >正文

扁平化风格的网站成都旅游住哪里最方便

扁平化风格的网站,成都旅游住哪里最方便,wordpress搜索框插件,免费的公司起名网接着上一节#xff0c;我们遇到了超卖的问题#xff0c;并通过Redis实现分布式锁#xff0c;进行了解决。本节 我将换一种方式实现分布式锁。 前提#xff1a; nginx、redis、nacos 模块1#xff1a; provider-and-consumer 端口 8023 模块2 rabbitmq-consumer 端口 8021 … 接着上一节我们遇到了超卖的问题并通过Redis实现分布式锁进行了解决。本节 我将换一种方式实现分布式锁。 前提 nginx、redis、nacos 模块1 provider-and-consumer 端口 8023 模块2 rabbitmq-consumer 端口 8021 添加依赖 dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.15.6/version /dependency业务代码 模块1代码 RedisTestController.java package com.atguigu.gulimall.providerconsumer.controller;import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.UUID; import java.util.concurrent.TimeUnit;/*** author: jd* create: 2024-07-08*/ RestController RequestMapping(/test) Slf4j public class RedisTestController {Autowiredprivate StringRedisTemplate stringRedisTemplate;Autowiredprivate RedissonClient redissonClient;GetMapping(/RedissonLock)public String deductStockByRedisson(){//写死一个固定商品ID作为我们被秒杀的商品String lockKeylock:product:102;//获取锁对象RLock lock redissonClient.getLock(lockKey);//加锁使用lock方法锁将会自动续命lock.lock();try{//获取当前库存String stock1 stringRedisTemplate.opsForValue().get(stock);if(stock1null){System.out.println(秒杀未开始,请等开始后操作下单);return end;}int stock Integer.parseInt(stringRedisTemplate.opsForValue().get(stock));if(stock0){// 扣减库存int realStock stock - 1;// 更新库存stringRedisTemplate.opsForValue().set(stock, realStock );System.out.println(扣减成功剩余的库存为 realStock);}else {System.out.println(扣减库存失败库存不足);}}finally {if(lock.isLocked()lock.isHeldByCurrentThread()){//释放分布式锁lock.unlock();System.out.println(分布式锁释放); //解锁}}return end;}} 模块2代码 RedisTestController.java package com.atguigu.gulimall.rabbitmqconsumer.controller;import lombok.extern.slf4j.Slf4j; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.UUID; import java.util.concurrent.TimeUnit;/**** 和provider-and-consumer 这两个服务中都有这个RedisTestController用来模拟两个不同的服务* author: jd* create: 2024-07-08*/ RestController RequestMapping(/test) Slf4j public class RedisTestController {Autowiredprivate StringRedisTemplate stringRedisTemplate;Autowiredprivate RedissonClient redissonClient;GetMapping(/RedissonLock)public String deductStockByRedisson(){//写死一个固定商品ID作为我们被秒杀的商品String lockKeylock:product:102;//获取锁对象RLock lock redissonClient.getLock(lockKey);//加锁使用lock方法锁将会自动续命lock.lock();try{//获取当前库存String stock1 stringRedisTemplate.opsForValue().get(stock);if(stock1null){System.out.println(秒杀未开始,请等开始后操作下单);return end;}int stock Integer.parseInt(stringRedisTemplate.opsForValue().get(stock));if(stock0){// 扣减库存int realStock stock - 1;// 更新库存stringRedisTemplate.opsForValue().set(stock, realStock );System.out.println(扣减成功剩余的库存为 realStock);}else {System.out.println(扣减库存失败库存不足);}}finally {if(lock.isLocked()lock.isHeldByCurrentThread()){//释放分布式锁lock.unlock();System.out.println(分布式锁释放); //解锁}}return end;}} 测试结果 单次请求我发送两次结果 第二次 成功扣减。 并发情况模拟 当前库存数 压测 并发压测结果 8023模块 扣减成功剩余的库存为83 分布式锁释放 扣减成功剩余的库存为81 分布式锁释放 扣减成功剩余的库存为80 分布式锁释放 扣减成功剩余的库存为78 分布式锁释放 扣减成功剩余的库存为76 分布式锁释放 扣减成功剩余的库存为75 分布式锁释放 扣减成功剩余的库存为72 分布式锁释放 扣减成功剩余的库存为68 分布式锁释放 扣减成功剩余的库存为66 分布式锁释放 扣减成功剩余的库存为64 分布式锁释放 扣减成功剩余的库存为62 分布式锁释放 扣减成功剩余的库存为60 分布式锁释放 扣减成功剩余的库存为58 分布式锁释放 扣减成功剩余的库存为56 分布式锁释放 扣减成功剩余的库存为54 分布式锁释放 扣减成功剩余的库存为52 分布式锁释放 扣减成功剩余的库存为50 分布式锁释放 扣减成功剩余的库存为48 分布式锁释放 扣减成功剩余的库存为46 分布式锁释放 扣减成功剩余的库存为44 分布式锁释放 扣减成功剩余的库存为42 分布式锁释放 扣减成功剩余的库存为40 分布式锁释放 扣减成功剩余的库存为38 分布式锁释放 扣减成功剩余的库存为36 分布式锁释放 扣减成功剩余的库存为34 分布式锁释放 扣减成功剩余的库存为32 分布式锁释放 扣减成功剩余的库存为30 分布式锁释放 扣减成功剩余的库存为28 分布式锁释放 扣减成功剩余的库存为26 分布式锁释放 扣减成功剩余的库存为24 分布式锁释放 扣减成功剩余的库存为22 分布式锁释放 扣减成功剩余的库存为20 分布式锁释放 扣减成功剩余的库存为18 分布式锁释放 扣减成功剩余的库存为16 分布式锁释放 扣减成功剩余的库存为14 分布式锁释放 扣减成功剩余的库存为12 分布式锁释放 扣减成功剩余的库存为10 分布式锁释放 扣减成功剩余的库存为8 分布式锁释放 扣减成功剩余的库存为6 分布式锁释放 扣减成功剩余的库存为4 分布式锁释放 扣减成功剩余的库存为2 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放8021模块日志 扣减成功剩余的库存为82 分布式锁释放 扣减成功剩余的库存为79 分布式锁释放 扣减成功剩余的库存为77 分布式锁释放 扣减成功剩余的库存为74 分布式锁释放 扣减成功剩余的库存为73 分布式锁释放 扣减成功剩余的库存为71 分布式锁释放 扣减成功剩余的库存为70 分布式锁释放 扣减成功剩余的库存为69 分布式锁释放 扣减成功剩余的库存为67 分布式锁释放 扣减成功剩余的库存为65 分布式锁释放 扣减成功剩余的库存为63 分布式锁释放 扣减成功剩余的库存为61 分布式锁释放 扣减成功剩余的库存为59 分布式锁释放 扣减成功剩余的库存为57 分布式锁释放 扣减成功剩余的库存为55 分布式锁释放 扣减成功剩余的库存为53 分布式锁释放 扣减成功剩余的库存为51 分布式锁释放 扣减成功剩余的库存为49 分布式锁释放 扣减成功剩余的库存为47 分布式锁释放 扣减成功剩余的库存为45 分布式锁释放 扣减成功剩余的库存为43 分布式锁释放 扣减成功剩余的库存为41 分布式锁释放 扣减成功剩余的库存为39 分布式锁释放 扣减成功剩余的库存为37 分布式锁释放 扣减成功剩余的库存为35 分布式锁释放 扣减成功剩余的库存为33 分布式锁释放 扣减成功剩余的库存为31 分布式锁释放 扣减成功剩余的库存为29 分布式锁释放 扣减成功剩余的库存为27 分布式锁释放 扣减成功剩余的库存为25 分布式锁释放 扣减成功剩余的库存为23 分布式锁释放 扣减成功剩余的库存为21 分布式锁释放 扣减成功剩余的库存为19 分布式锁释放 扣减成功剩余的库存为17 分布式锁释放 扣减成功剩余的库存为15 分布式锁释放 扣减成功剩余的库存为13 分布式锁释放 扣减成功剩余的库存为11 分布式锁释放 扣减成功剩余的库存为9 分布式锁释放 扣减成功剩余的库存为7 分布式锁释放 扣减成功剩余的库存为5 分布式锁释放 扣减成功剩余的库存为3 分布式锁释放 扣减成功剩余的库存为1 分布式锁释放 扣减成功剩余的库存为0 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 扣减库存失败库存不足 分布式锁释放 可以看到没有超卖现象。至此Redission实现分布式锁已经OK。 redis实现分布式锁 可见博文【分布式锁】Redis实现分布式锁
http://www.zqtcl.cn/news/2448/

相关文章:

  • 舆情网站大全大良网站建设收费
  • 网站开发人员工资计入无形资产网站如何做标题优化
  • 网站快速建设软件下载做视频网站 版权怎么解决
  • 怎么做网站的广告wordpress 悬浮公告
  • 企业网站不被百度收录网站的软文 怎么做推广方案
  • iis默认网站 没有属性专业网站
  • 把网站生成app的免费平台陕西省建设网三类人员证书打印
  • 网站建设深圳搜索引擎优化seo公司
  • 网站开发的主要步骤网站产品怎么改顺序
  • 全屏网站模板制作教程怎么做扫二维码登陆网站
  • 电商服务站点建设方案网站建设高端品牌
  • 如何打开网站根目录运营服务商官方网站
  • 做标书经验分享网站在线课堂手机网站模板
  • 马云是做网站的服装如何做微商城网站建设
  • 网站 建设 汇报我要免费开网店
  • 网站开发过滤器作用台州网站建设外包
  • 网站招生宣传怎么做wordpress伪静态404
  • 想招代理去什么网站网站优化及推广
  • 罗湖公司网站建设郴州新网二手车信息
  • IT男做网站免备案做网站可以盈利吗
  • 甘肃省建设厅招标办网站开封开封县网站建设
  • 网站开发进度把握wordpress自动跳转
  • 做全国性的app网站推广多少有哪些可以做调查的网站
  • 医院类网站建设与维护江山网站建设
  • 英文手表网站在服务器上中的asp网站后台能输入帐号无法进入
  • 贵州能源网站 中企动力建设代做网页制作网站
  • 网站开发步骤代写文章质量高的平台
  • 淄博网站建设公司哪家好陕西建设网站
  • wordpress 中文建站个人网站域名名称大全
  • 知名网站设计服务商时尚类网站设计公司