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

网站抠图怎么做的免费ppt模板下载红色

网站抠图怎么做的,免费ppt模板下载红色,中国小康建设网 是个什么网站,wordpress创建搜索页面点击上方“Java面试题精选”#xff0c;关注公众号面试刷图#xff0c;查缺补漏分布式锁常见的三种实现方式#xff1a;数据库乐观锁#xff1b;基于Redis的分布式锁#xff1b;基于ZooKeeper的分布式锁。本地面试考点是#xff0c;你对Redis使用熟悉吗#xff1f;Redis… 点击上方“Java面试题精选”关注公众号面试刷图查缺补漏分布式锁常见的三种实现方式数据库乐观锁基于Redis的分布式锁基于ZooKeeper的分布式锁。本地面试考点是你对Redis使用熟悉吗Redis中是如何实现分布式锁的。要点Redis要实现分布式锁以下条件应该得到满足互斥性在任意时刻只有一个客户端能持有锁。不能死锁客户端在持有锁的期间崩溃而没有主动解锁也能保证后续其他客户端能加锁。容错性只要大部分的Redis节点正常运行客户端就可以加锁和解锁。实现可以直接通过 set key value px milliseconds nx 命令实现加锁 通过Lua脚本实现解锁。//获取锁(unique_value可以是UUID等)SET resource_name unique_value NX PX  30000//释放锁(lua脚本中一定要比较value防止误解锁)if redis.call(get,KEYS[1])  ARGV[1] then    return redis.call(del,KEYS[1])else    return 0end代码解释set 命令要用 set key value px milliseconds nx替代 setnx expire 需要分两次执行命令的方式保证了原子性value 要具有唯一性可以使用UUID.randomUUID().toString()方法生成用来标识这把锁是属于哪个请求加的在解锁的时候就可以有依据释放锁时要验证 value 值防止误解锁通过 Lua 脚本来避免 Check And Set 模型的并发问题因为在释放锁的时候因为涉及到多个Redis操作 (利用了eval命令执行Lua脚本的原子性)加锁代码分析首先set()加入了NX参数可以保证如果已有key存在则函数不会调用成功也就是只有一个客户端能持有锁满足互斥性。其次由于我们对锁设置了过期时间即使锁的持有者后续发生崩溃而没有解锁锁也会因为到了过期时间而自动解锁(即key被删除)不会发生死锁。最后因为我们将value赋值为requestId用来标识这把锁是属于哪个请求加的那么在客户端在解锁的时候就可以进行校验是否是同一个客户端。解锁代码分析将Lua代码传到jedis.eval()方法里并使参数KEYS[1]赋值为lockKeyARGV[1]赋值为requestId。在执行的时候首先会获取锁对应的value值检查是否与requestId相等如果相等则解锁(删除key)。存在的风险如果存储锁对应key的那个节点挂了的话就可能存在丢失锁的风险导致出现多个客户端持有锁的情况这样就不能实现资源的独享了。客户端A从master获取到锁在master将锁同步到slave之前master宕掉了(Redis的主从同步通常是异步的)。主从切换slave节点被晋级为master节点客户端B取得了同一个资源被客户端A已经获取到的另外一个锁。导致存在同一时刻存不止一个线程获取到锁的情况。redlock算法出现这个场景是假设有一个 redis cluster有 5 个 redis master 实例。然后执行如下步骤获取一把锁获取当前时间戳单位是毫秒跟上面类似轮流尝试在每个 master 节点上创建锁过期时间较短一般就几十毫秒尝试在大多数节点上建立一个锁比如 5 个节点就要求是 3 个节点 n / 2 1客户端计算建立好锁的时间如果建立锁的时间小于超时时间就算建立成功了要是锁建立失败了那么就依次之前建立过的锁删除只要别人建立了一把分布式锁你就得不断轮询去尝试获取锁。Redis 官方给出了以上两种基于 Redis 实现分布式锁的方法详细说明可以查看https://redis.io/topics/distlock 。Redisson实现Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。它不仅提供了一系列的分布式的Java常用对象还实现了可重入锁(Reentrant Lock)、公平锁(Fair Lock、联锁(MultiLock)、 红锁(RedLock)、 读写锁(ReadWriteLock)等还提供了许多分布式服务。Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern)从而让使用者能够将精力更集中地放在处理业务逻辑上。Redisson 分布式重入锁用法Redisson 支持单点模式、主从模式、哨兵模式、集群模式这里以单点模式为例// 1.构造redisson实现分布式锁必要的ConfigConfig config  new Config();config.useSingleServer().setAddress(redis://127.0.0.1:5379).setPassword(123456).setDatabase(0);// 2.构造RedissonClientRedissonClient redissonClient  Redisson.create(config);// 3.获取锁对象实例(无法保证是按线程的顺序获取到)RLock rLock  redissonClient.getLock(lockKey);try {    /**     * 4.尝试获取锁     * waitTimeout 尝试获取锁的最大等待时间超过这个值则认为获取锁失败     * leaseTime   锁的持有时间,超过这个时间锁会自动失效(值应设置为大于业务处理的时间确保在锁有效期内业务能处理完)     */    boolean res  rLock.tryLock((long)waitTimeout, (long)leaseTime, TimeUnit.SECONDS);    if (res) {        //成功获得锁在这里处理业务    }} catch (Exception e) {    throw new RuntimeException(aquire lock fail);}finally{    //无论如何, 最后都要解锁    rLock.unlock();}加锁流程图解锁流程图我们可以看到RedissonLock是可重入的并且考虑了失败重试可以设置锁的最大等待时间 在实现上也做了一些优化减少了无效的锁申请提升了资源的利用率。需要特别注意的是RedissonLock 同样没有解决 节点挂掉的时候存在丢失锁的风险的问题。而现实情况是有一些场景无法容忍的所以 Redisson 提供了实现了redlock算法的 RedissonRedLockRedissonRedLock 真正解决了单点失败的问题代价是需要额外的为 RedissonRedLock 搭建Redis环境。所以如果业务场景可以容忍这种小概率的错误则推荐使用 RedissonLock 如果无法容忍则推荐使用 RedissonRedLock。参考https://github.com/javazhiyin/advanced-java/https://crazyfzw.github.io/2019/04/15/distributed-locks-with-redis/最近三期【04期】分库分表之后id 主键如何处理【05期】消息队列中如何保证消息的顺序性【06期】单例模式有几种写法精选常见面试题、技术知识点帮助开发者查缺补漏。
http://wiki.neutronadmin.com/news/421360/

相关文章:

  • 上海网站群建设上海闵行做网站的公司
  • 如何设置中国建设银行网站首页海南省建筑信息平台
  • 加油站网站建设怎么注册网店
  • 青岛在线建站排名公司wordpress长文章
  • 图片站 wordpresswordpress字母索引
  • 网站应用是什么郑州百度建网站
  • 如何选择常州网站建设wordpress 文本框
  • 网站首页用什么字体好建筑模版东莞网站建设技术支持
  • 网站建设栏目设置表格wordpress 增加导航
  • 网站文件名格式建设项目自主验收验收网站
  • 各大网站注册网吧设计公司
  • 中国建设银行上海市分行网站wordpress怎么编辑的
  • 自己做个网站的流程东莞seo管理
  • 做产地证的网站深圳做外贸网站多少钱
  • wordpress旅游网站做网站记什么科目
  • 西安定制网站做网站的背景图片格式大小
  • 大连建站价格上海市建设安全协会 - 网站首页
  • 福州网站制作公众号里的网站怎么做的
  • c 网站开发视频教程ppt设计培训班
  • 淘宝客网站应该怎么做二级域名解析查询
  • 网站开发公司臻动域名到期怎么续费
  • 酷维网站模版wordpress最新列表
  • 做网站app需多少钱耒阳做网站
  • 网站建设新报价图片南京核酸最新通知
  • 网站建设 邯郸网站制作视频拍摄脚本模板
  • 仁怀企业网站建设建立拼音
  • 黄陂建设网站浏览器哪个好
  • 沧州南皮网站建设公司it培训网
  • vivo手机为什么建设网站手机登录凡科网
  • 免费注册个人网站官网网页设计欣赏有符号