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

在线做头像的网站跨境电商如何开店

在线做头像的网站,跨境电商如何开店,免费做网站推广的软件,江西旺达建设工程有限公司网站一、前言关于redis分布式锁, 查了很多资料, 发现很多只是实现了最基础的功能, 但是, 并没有解决当锁已超时而业务逻辑还未执行完的问题, 这样会导致: A线程超时时间设为10s(为了解决死锁问题), 但代码执行时间可能需要30s, 然后redis服务端10s后将锁删除, 此时, B线程恰好申请锁…一、前言关于redis分布式锁, 查了很多资料, 发现很多只是实现了最基础的功能, 但是, 并没有解决当锁已超时而业务逻辑还未执行完的问题, 这样会导致: A线程超时时间设为10s(为了解决死锁问题), 但代码执行时间可能需要30s, 然后redis服务端10s后将锁删除, 此时, B线程恰好申请锁, redis服务端不存在该锁, 可以申请, 也执行了代码, 那么问题来了, A、B线程都同时获取到锁并执行业务逻辑, 这与分布式锁最基本的性质相违背: 在任意一个时刻, 只有一个客户端持有锁, 即独享为了解决这个问题, 本文将用完整的代码和测试用例进行验证, 希望能给小伙伴带来一点帮助二、准备工作压测工具jmeterhttps://pan.baidu.com/share/init?surlNN0c0tDYQjBTTPA-WTT3yg提取码: 8f2aredis-desktop-manager客户端https://pan.baidu.com/share/init?surlNoJtZZZOXsk45aQYtveWbQ提取码: 9bhfpostmanhttps://pan.baidu.com/share/init?surl28sGJk4zxoOknAd-47hE7w提取码: vfu7也可以直接官网下载, 我这边都整理到网盘了需要postman是因为我还没找到jmeter多开窗口的办法, 哈哈三、说明1、springmvc项目2、maven依赖3、核心类分布式锁工具类: DistributedLock测试接口类: PcInformationServiceImpl锁延时守护线程类: PostponeTask四、实现思路先测试在不开启锁延时线程的情况下, A线程超时时间设为10s, 执行业务逻辑时间设为30s, 10s后, 调用接口, 查看是否能够获取到锁, 如果获取到, 说明存在线程安全性问题同上, 在加锁的同时, 开启锁延时线程, 调用接口, 查看是否能够获取到锁, 如果获取不到, 说明延时成功, 安全性问题解决五、实现1、版本01代码1)、DistributedLock说明: 就2个方法, 加锁解锁, 加锁使用jedis setnx方法, 解锁执行lua脚本, 都是原子性操作2)、PcInformationServiceImpl说明: 测试类很简单, value随机生成, 保证唯一, 不会在超时情况下解锁其他客户端持有的锁3)、打开redis-desktop-manager客户端, 刷新缓存, 可以看到, 此时是没有add_information_lock的key的4)、启动jmeter, 调用接口测试设置5个线程同时访问, 在10s的超时时间内查看redis, add_information_lock存在, 多次调接口, 只有一个线程能够获取到锁往期100篇回顾一百期面试题汇总redis1-4个请求, 都未获取到锁第5个请求, 获取到锁OK, 目前为止, 一切正常, 接下来测试10s之后, A仍在执行业务逻辑, 看别的线程是否能获取到锁可以看到, 操作成功, 说明A和B同时执行了这段本应该独享的代码, 需要优化。往期100篇回顾一百期面试题汇总2、版本02代码1)、DistributedLock说明: 新增了锁延时方法, lua脚本, 自行脑补相关语法2)、PcInformationServiceImpl不需要改动3)、PostponeTask说明: 调用lock同时, 立即开启PostponeTask线程, 线程等待超时时间的2/3时间后, 开始执行锁延时代码, 如果延时成功, add_information_lock这个key会一直存在于redis服务端, 直到业务逻辑执行完毕, 因此在此过程中, 其他线程无法获取到锁, 也即保证了线程安全性下面是测试结果10s后, 查看redis服务端, add_information_lock仍存在, 说明延时成功此时用postman再次请求, 发现获取不到锁看一下控制台打印A线程在19:09:11获取到锁, 在10 * 2 / 3 6s后进行延时, 成功, 保证了业务逻辑未执行完毕的情况下不会释放锁A线程执行完毕, 锁释放, 其他线程又可以竞争锁OK, 目前为止, 解决了锁超时而业务逻辑仍在执行的锁冲突问题, 还很简陋, 而最严谨的方式还是使用官方的 Redlock 算法实现, 其中 Java 包推荐使用 redisson, 思路差不多其实, 都是在快要超时时续期, 以保证业务逻辑未执行完毕不会有其他客户端持有锁关于面试面试我还通过一些渠道整理了需要大厂真实面试主要有蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初中级高级Java面试题集合附带超详细答案希望能帮助到大家。珍藏多年的230个高端简历模板也一起送给大家资料领取步骤1、关注转发2、私信发送电子书
http://www.pierceye.com/news/192499/

相关文章:

  • 网站建设 语言成都app
  • 免费建站的手机app专业做网站设计公司价格
  • 江苏宜兴做网站的电话seo基础培训
  • 企业手机端网站模板下载济南公司建站模板
  • 一般公司做网站多少钱南昌市房产网
  • 惠州网站小程序建设做公司永久免费网站什么好
  • 湖南涟钢建设有限公司网站局网站建设工作总结
  • 家乡ppt模板免费下载网站合肥百姓网网站建设
  • 免费整套ppt模板下载网站东莞建设教育网站
  • 漯河网站建设漯河ps制作个人网站首页
  • 电商网站公司软件开发和软件研发
  • 网站建设浙江公司网站开发运营新人要注意什么
  • 外贸网站模板哪里下载家里电脑可以做网站服务器吗
  • 长沙门户网站北京设计网站的公司
  • 站长统计平面设计找工作难吗
  • seo建站公司推荐电商平台活动策划方案
  • 建设淘宝客网站.lc和ev手机对比平台
  • vue 做企业网站特产网站开发背景
  • 奉新网站制作dede视频网站源码
  • 做动画网站去哪采集建设网站需要的资金清单
  • 网站后台发邮件注册公司需要什么证件和手续
  • 炫酷特效网站万网虚拟主机免费空间
  • 公司网站模板最新怀远网站建设哪家好
  • 交互式网站定义如何网上找加工订单
  • 一个域名可以做几个网站吗南城网站建设公司
  • 宝安商城网站建设flash新手入门简单动画制作
  • 设置网站建设WordPress adsen
  • 网站与微信内容建设与运维总结建筑网络图
  • 网站模板文件不存在网站建设礻金手指下拉十二
  • 东莞浩智建设网站公司做百度推广员赚钱吗