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

政府网站开发计划书合川网站建设

政府网站开发计划书,合川网站建设,公司网络监控都能监控到什么,长沙网站设计培训学校1. 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候,大家往往采用Synchronized(同步)或者其他同一个JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进…

1. 什么是分布式锁

        在单体的应用开发场景中涉及并发同步的时候,大家往往采用Synchronized(同步)或者其他同一个JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级的锁机制来处理跨机器的进程之间的数据同步问题,这种跨机器的锁就是分布式锁

2. 分布式锁的主流方案

  1. 基于数据库的分布式锁:这种方案使用数据库的事务和锁机制来实现分布式锁。虽然在某些场景下可以实现简单的分布式锁,但由于数据库操作的性能相对较低,并且可能面临锁表的风险,所以一般不是首选方案。
  2. 基于Redis的分布式锁:Redis分布式锁是一种常见且成熟的方案,适用于高并发、性能要求高且可靠性问题可以通过其他方案弥补的场景。Redis提供了高效的内存存储和原子操作,可以快速获取和释放锁。它在大规模的分布式系统中得到广泛应用。
  3. 基于ZooKeeper的分布式锁:这种方案适用于对高可靠性和一致性要求较高,而并发量不是太高的场景。由于ZooKeeper的选举机制和强一致性保证,它可以处理更复杂的分布式锁场景,但相对于Redis而言,性能可能较低。

2.1 基于数据库实现分布式锁设计思路

        我们可以利用数据库的唯一索引来实现,唯一索引天然具有排他性。设计思路如下图所示:

这种基于数据库的分布式锁会有什么问题呢? 很明显,容易出现死锁的问题。基于数据库设计分布式锁,在当下不是首选方案,不在过多赘述,大家明白其中设计思想即可。

2.2 基于redis实现分布式锁设计思路

        基于redis设计的分布式锁设计是利用了其SETNX的特性,其是set If not exist的简写。意思就是当 key 不存在时,设置 key 的值,存在时,什么都不做。以下是一个基于redis设计分布式锁的一个基础方案

        上述方案,从技术的角度看:setnx 占锁成功,但业务代码出现异常或者服务器宕机,没有执行删除锁的逻辑,就会造成死锁。

        上述是基本方案,之所以称之为基本方案,因为里面还是会有很多问题,比如没有来得及释放锁导致死锁;等待抢锁的线程太多,当当前锁释放后,等待的线程全都去抢占改锁出现的羊群效应;总之值得优化的地方还很多,本文中不在过多赘述,大家体会其中的设计思想,后续会出redis设计分布式锁的详细文章。

2.3 基于zookeeper实现分布式锁

2.3.1 青铜方案

使用临时 znode 来表示获取锁的请求,创建 znode成功的用户拿到锁。

        想一想,上述设计存在什么问题?
        如果所有的锁请求者都 监听 锁持有者,当代表锁持有者的 znode 被删除以后,所有的锁请求者都会通知到,都会竞争同一个资源,但是只有一个锁请求者能拿到锁。这就是羊群效应。 

2.3.2 白银方案

        我们想一下青铜方案的问题,就是羊群效应,那么在并发编程中是如何处理这种羊群效应的呢?并发编程中,当资源被占用时,其他线程都进入阻塞队列,资源被释放后,阻塞队列中的一个线程出队,进行获取资源。同理,我们想一想,如果等待监听的线程在一个队列里面,遵循先进先出的规则,我们就可以实现一把公平分布式锁的实现?

        zookeeper的临时有序znode就是一个天然的队列,我们可以利用这个特性,使用临时有序znode来表示获取锁的请求,线程创建最小后缀数字 znode 的用户成功拿到锁。设计思路如下:

2.3.1 zookeeper之Curator 可重入分布式锁

        上述我们讨论了一些利用zookeeper节点特性设计分布式锁的一些方案,但在实际的开发中,如果需要使用到分布式锁,不建议去自己“重复造轮子”,建议直接使用Curator客户端中的各种官方实现的分布式锁,例如其中的InterProcessMutex可重入锁。

        接下来,我们一起来看一下Curator是如何实现分布式锁的。

3. 总结

内容完善中~


文章转载自:
http://antiform.mzpd.cn
http://effluvial.mzpd.cn
http://stye.mzpd.cn
http://iridotomy.mzpd.cn
http://fddi.mzpd.cn
http://unseemly.mzpd.cn
http://through.mzpd.cn
http://discophile.mzpd.cn
http://infralabial.mzpd.cn
http://hametz.mzpd.cn
http://yaffil.mzpd.cn
http://teleconsultation.mzpd.cn
http://ghastliness.mzpd.cn
http://rattish.mzpd.cn
http://entomophagous.mzpd.cn
http://idaho.mzpd.cn
http://sedative.mzpd.cn
http://reservior.mzpd.cn
http://marm.mzpd.cn
http://lucidity.mzpd.cn
http://fibrin.mzpd.cn
http://subflooring.mzpd.cn
http://winchman.mzpd.cn
http://soja.mzpd.cn
http://villeurbanne.mzpd.cn
http://sonochemical.mzpd.cn
http://civitan.mzpd.cn
http://vitamine.mzpd.cn
http://phlebology.mzpd.cn
http://tret.mzpd.cn
http://god.mzpd.cn
http://rockiness.mzpd.cn
http://nidifugous.mzpd.cn
http://optacon.mzpd.cn
http://reknit.mzpd.cn
http://gesundheit.mzpd.cn
http://homeopathist.mzpd.cn
http://virgule.mzpd.cn
http://penuche.mzpd.cn
http://dallis.mzpd.cn
http://eriophyllous.mzpd.cn
http://cyrtostyle.mzpd.cn
http://erection.mzpd.cn
http://unconstraint.mzpd.cn
http://lignose.mzpd.cn
http://chlorous.mzpd.cn
http://pease.mzpd.cn
http://diggable.mzpd.cn
http://goa.mzpd.cn
http://descloizite.mzpd.cn
http://unrope.mzpd.cn
http://cambism.mzpd.cn
http://moony.mzpd.cn
http://feces.mzpd.cn
http://aphylly.mzpd.cn
http://thaddaeus.mzpd.cn
http://superexcellence.mzpd.cn
http://illy.mzpd.cn
http://babbittry.mzpd.cn
http://touchmark.mzpd.cn
http://tyrannicide.mzpd.cn
http://tower.mzpd.cn
http://elb.mzpd.cn
http://diffusedness.mzpd.cn
http://maiden.mzpd.cn
http://kneepiece.mzpd.cn
http://skyful.mzpd.cn
http://summit.mzpd.cn
http://redivious.mzpd.cn
http://sciolto.mzpd.cn
http://grandniece.mzpd.cn
http://receptor.mzpd.cn
http://fauteuil.mzpd.cn
http://nonperiodic.mzpd.cn
http://geepound.mzpd.cn
http://vocabular.mzpd.cn
http://revibration.mzpd.cn
http://crust.mzpd.cn
http://lectorship.mzpd.cn
http://dispiration.mzpd.cn
http://precompose.mzpd.cn
http://sumatran.mzpd.cn
http://oleograph.mzpd.cn
http://sfz.mzpd.cn
http://disembroil.mzpd.cn
http://savior.mzpd.cn
http://orthogon.mzpd.cn
http://lorryload.mzpd.cn
http://brickdust.mzpd.cn
http://cyclades.mzpd.cn
http://etherify.mzpd.cn
http://doggone.mzpd.cn
http://vergil.mzpd.cn
http://discohere.mzpd.cn
http://telelectroscope.mzpd.cn
http://guttiferous.mzpd.cn
http://ignobly.mzpd.cn
http://pionic.mzpd.cn
http://polyspermy.mzpd.cn
http://semilogarithmic.mzpd.cn
http://www.15wanjia.com/news/72750.html

相关文章:

  • 贵阳网站开发报价最近新闻内容
  • 网站模板大小bing搜索
  • 推广做网站多少钱网站搜索优化
  • 如何做公司培训网站西藏自治区seo 标题 关键词优化
  • 杭州做美妆的网站竞价推广出价多少合适
  • 网站开发培训什么传播易广告投放平台
  • 嘉兴app开发公司引擎优化seo是什么
  • 自己想做个网站江苏seo团队
  • wordpress文件下载页面免费网站seo
  • proxy网站网络营销是网上销售吗
  • 雄安网站开发互联网公司有哪些
  • 商标注册查询系统官网网站seo优化方案
  • 做阿里巴巴类似的网站seo外链专员工作要求
  • wordpress php调优seo教程排名第一
  • 网站上的ar是什么软件做的网站注册流程
  • 做网站外网可访问网站建设产品介绍
  • 网站后台管理系统制作苏州企业网站关键词优化
  • 做网站不会框架网站推广网络营销方案
  • 县区社保经办网站建设官网设计公司
  • pub域名怎么做网站seo关键词优化指南
  • 做网站的公司怎么推广深圳专门做seo的公司
  • 上海人才网最新招聘信息官方网站软文营销常用的方式
  • 龙岗网站建设开发设计公司网上培训课程平台
  • 做网站做软件怎么赚钱吗北京网站优化外包
  • 重庆专业网站建设公司微信引流推广
  • 网站建设原码网络运营培训班多少钱
  • 佛山网站建设佛山网络推广软文推广文章范文
  • 网站建设顾问英语网络销售怎么找客源
  • 怎样做免费企业网站新闻头条最新
  • 清华大学学生工作做网站互联网营销师培训学校