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

深圳专业网站建设价格专业seo服务商

深圳专业网站建设价格,专业seo服务商,凡科网做网站的图片,山东最新消息今天如何优雅的设计一个分布式锁#xff1f;如何设计一个分布式锁#xff1f;1、什么是分布式锁2、那么分布式锁#xff0c;具备什么条件呢#xff1f;3、设计分布式锁有哪些方式#xff1f;3.1 利用redis实现分布式锁原理3.2 基于数据库做分布式锁3.3 基于zookeeper实现分布式… 如何优雅的设计一个分布式锁如何设计一个分布式锁1、什么是分布式锁2、那么分布式锁具备什么条件呢3、设计分布式锁有哪些方式3.1 利用redis实现分布式锁原理3.2 基于数据库做分布式锁3.3 基于zookeeper实现分布式锁如何设计一个分布式锁 今天叶秋老哥又去面试了只见美女面试官微微一笑问了我一个问题听完后内心一颤不知道是被她迷人的笑容给迷倒还是被她的致命问题给问倒。不过还是内心一收正襟危坐吧啦吧啦了一堆如下 对于如何设计一个分布式锁我认为我们应该先了解什么是分布式锁 1、什么是分布式锁 我个人理解的分布式锁顾名思义就是分布式系统下的锁。在分布式系统中若数据只有一份那么在同一时刻或许会有多个机器访问修改该数据那么为了保证该数据的一致性和可见性我们就需要一个锁当有机器访问该数据时就把该数据锁住来提醒别的机器“我”已经有别的机器获取到了你们再等会。 2、那么分布式锁具备什么条件呢 四个一在分布式系统下同一个方法在同一时间只能被一台机器上的一个线程执行。三个具备具备可重入锁特性防止死锁、具备阻塞锁特性、具备公平锁特性。两个高高性能、高可用的获取和释放锁不能死锁。 3、设计分布式锁有哪些方式 对于如何设计一个分布式锁我认为有以下几种方式分别是 利用redis做分布式锁小样上次面试把你给漏了这次先说你数据库做分布式锁利用zookeeper做分布式锁 3.1 利用redis实现分布式锁原理 在redis中我们可以利用redis 的 setnx()、expire() 方法做分布式锁。 首先 setnx()方法它有两个参数setnx(keyvalue)含义就是如果key不存在则设置当前key成功并返回状态码1。如果key存在则设置当前key失败并返回状态码0。并且由于该方法是原子性的所以可以考虑使用该方法。 并且配合expire()方法来设置key的过期时间。 整体流程如下 setnx(keyvalue)如果返回0代表key已存在设置失败如果返回1代表key不存在设置成功。然后使用expire(key)对key设置超时时间避免死锁问题。然后线程访问完毕后调用delete命令删除该key。代表使用完毕其他线程可以竞争该锁。 3.2 基于数据库做分布式锁 第二种方法就是基于数据库的排他锁来实现分布式锁。 我们都知道在数据库的查询语句后面加上 for update后数据库就会给该条数据加上排他锁这样其他线程就无法再访问该条记录了。我们可以以此来认为获得排他锁的线程即获得了分布式锁。然后执行自己的业务逻辑最后通过 connection.commit()来释放锁。 使用这种方式的优点是 简单易于理解不需要引入别的技术成本低 缺点是 对数据库依赖性大操作数据库有一定的性能开销 3.3 基于zookeeper实现分布式锁 再说zookeeper之前先说下zookeeper的锁原理 利用临时节点与 watch 机制。每个锁占用一个普通节点 /lock当需要获取锁时在 /lock 目录下创建一个临时节点创建成功则表示获取锁成功失败则 watch/lock 节点有删除操作后再去争锁。临时节点好处 在于当进程挂掉后能自动上锁的节点自动删除即取消锁。 缺点所有取锁失败的进程都监听父节点很容易发生羊群效应即当释放锁后所有等待进程一起来创建节点并发量很大。 说清楚了原理用代码实现也就不难了可以引入zookeeper的客户端zkClient。 所以设计一个分布式锁大致有以上几种方法但具体使用哪一种方式比较合理就应该根据实际场景来具体分析了。
http://www.dnsts.com.cn/news/188541.html

相关文章:

  • 电子代加工东莞网站建设html5做简单网站
  • 好看开源企业网站模板电脑速成班短期电脑培训班
  • 模版 网站需要多少钱个人网站设计论文怎么写
  • 延安网站建设哪家专业wordpress 远程管理
  • 活动 网站 源码信阳做网站 汉狮网络
  • 高平市规建设局网站好用的网站管理系统
  • 上传照片的网站赚钱新网站排名优化怎么做
  • 做亚马逊网站一般发什么快递网络广告电话
  • 网站浏览器兼容网站建设及推广外包
  • 网站建设推广员工资个人服务器网站备案
  • 网站信息内容建设管理wordpress排行小工具
  • 甘肃省建设厅网站资质升级公示广州网络推广有限公司
  • 使用angular2框架做的网站门户网站做吗
  • html5手机网站返回顶部网站做流量是怎么回事
  • 四川智能网站建设制作免费的云服务器有哪些
  • 网站流量监控怎么做深圳市住房和建设局官方网站查阅
  • 网站怎么发布到服务器做公司网站是永久性的吗
  • 网站前端泰州网站设计培训
  • 网站群建设意见杭州北京网站建设公司
  • 开发建设信息的网站专注合肥网站推广
  • 网站建设 需求分析报告wordpress tinymce
  • 辽宁企业网站建设公司店铺网络营销策划方案
  • 南宁企业网站建设好看logo图片
  • 房地产网站制作深圳3区最新通告
  • 上海建网站多少钱哪里有网络推广公司
  • 美橙互联 网站备案拍照长沙大型网站设计公司
  • 免费网站后台管理模板下载衣柜东莞网站建设技术支持
  • 珠宝销售网站源码专业彩票网站建设
  • 网站设置三方交易dw做网站怎么发布
  • 北京网站建设公司如何选wordpress 标签别名