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

试玩平台怎么做网站sem优化策略

试玩平台怎么做网站,sem优化策略,甘肃做网站找谁,丽江网站建设分布式是现在的比较主流的技术,常常和微服务一起出现。那么对于多个实例之间,如何证分布式系统中多个进程或线程同步访问共享资源呢?我们其实一想到的就是锁,我们在java里边有 synchronized, 在python里有lock,但是这个…

分布式是现在的比较主流的技术,常常和微服务一起出现。那么对于多个实例之间,如何证分布式系统中多个进程或线程同步访问共享资源呢?我们其实一想到的就是锁,我们在java里边有 synchronized, 在python里有lock,但是这个只能到证在单机的时候不会出现线程安全问题,但是在分布式的环境下,这种方式就没有任何的作用了。shigen在实习的时候就遇到了这样的问题,最开始还不知道分布式锁。但是今天,这篇文章将会带你读懂分布式锁和它的实现方式。

题外话

先来题外话引入今天的话题哈,现在的面试,八股文总会提到超卖问题怎么解决,恰恰在昨天下班的时候看到了这样的一篇文章。背景我也不想去研究了,毕竟咱也不是重度的吃瓜群众,比较吸引我的事超额超卖问题。当时不由得一惊:擦,这不就是面试经常问的问题吗?要是同行写出的程序问题,这不得去祭天。

超额超卖新闻

吓得我赶紧回来研究一下分布式锁。

分布式锁

概念是这样的:分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术

同我们认识的synchronized锁和其它的lock锁一样,分布式锁也是有要求的:

分布式锁要求
  1. 互斥性:在任意时刻只能有一个客户端持有锁。
  2. 不会发生死锁:即使持有锁的客户端发生故障,也能保证锁最终会被释放。
  3. 具有容错性:分布式锁需要能够容忍节点故障等异常情况,保证系统的稳定性。
实现方案

1.基于数据库实现的分布式锁

可以通过数据库的乐观锁或悲观锁实现分布式锁,但是由于数据库的操作比较慢,不适合高并发场景。

2.基于 ZooKeeper 实现的分布式锁

ZooKeeper 是一个高可用性的分布式协调服务,以前在微服务中也作为注册中心使用,是CP的。可以通过它来实现分布式锁。但是使用 ZooKeeper 需要部署额外的服务,增加了系统复杂度。所以,shigen也很少使用这个。

3.基于 Redis 实现的分布式锁

Redis支持分布式部署,可以通过Redis的原子操作实现分布式锁,而且具有高性能和高可用性。

具体实现

mysql

这里需要注意:不要小瞧了数据库,数据库可以实现悲观锁和乐观锁

悲观锁

悲观锁的概念可以理解为:不管是谁来操作数据,我都要上一把锁!

乐观锁

其实就是在数据修改的时候加上一个版本号,我们在修改的时候加上版本号作为去修改的条件。这一点shigen是使用elasticSearch的时候也遇到过。

其实这样看起来,mysql实现分布式锁还是比较简单的。但是你想想,都上分布式了,肯定对性能上有要求。这样的操作,DB上的压力很大,mysql需要不断的从磁盘中加载数据到内存中,性能上的提升不是很明显的。

zookeeper

实现稍微的复杂,这里不讲,目前也没有接触到这样的项目。不过它在CAP理论中是CP理论,对于数据的一致性要求高的可以考虑采取它作为解决方案。

redis

最后讲一下给予内存的数据库redis,提到redis,就不得不提到redLock,俗称的红锁。我们在Spring boot的项目中配置好redisson即可使用。

其实写法上和Java的lock锁差不多,都有获得锁、释放锁的过程。

总结

在文章的最后我们来一波小总结, 即:Redis VS Zookeeper。

Redis 和 ZooKeeper 都可以用来实现分布式锁,它们在实现分布式锁的机制和原理上有所不同,具体区别如下:

  1. 数据存储方式:Redis 将锁信息存储在内存中,而 ZooKeeper 将锁信息存储在 ZooKeeper 的节点上,占用的是磁盘的空间。
  2. 锁的释放:Redis 的锁是通过设置锁的过期时间来自动释放的,而 ZooKeeper 的锁需要手动释放,如果锁的持有者出现宕机或网络中断等情况,需要等待锁的超时时间才能自动释放。
  3. 锁的竞争机制:Redis 使用的是单机锁,即所有请求都直接连接到同一台 Redis 服务器,容易发生单点故障;而 ZooKeeper 使用的是分布式锁,即所有请求都连接到 ZooKeeper 集群,具有较好的可用性和可扩展性——集群的优势。
  4. 一致性:Redis 的锁是非严格意义下的分布式锁,因为在多台机器上运行多个进程时,由于 Redis 的主从同步可能会存在数据不一致的问题;而 ZooKeeper 是强一致性的分布式系统,保证了数据的一致性。
  5. 性能:Redis 的性能比 ZooKeeper 更高,数据的存储位置不同,一个是内存,另一个是在磁盘中。

总之,Redis 适合实现简单的分布式锁场景,而 ZooKeeper 适合实现复杂的分布式协调场景,也就是 ZooKeeper 适合强一致性的分布式系统。具体场景具体的分析。


以上就是《分布式锁如何实现》的全部内容了,觉得不错的话,记得点赞支持一下哈!

shigen一起,每天不一样!


文章转载自:
http://obsolescence.c7507.cn
http://alalia.c7507.cn
http://entice.c7507.cn
http://waiver.c7507.cn
http://bashlyk.c7507.cn
http://rustic.c7507.cn
http://unconfiding.c7507.cn
http://hangwire.c7507.cn
http://sweatshop.c7507.cn
http://manama.c7507.cn
http://printshop.c7507.cn
http://kreisler.c7507.cn
http://electroduct.c7507.cn
http://distribution.c7507.cn
http://discovery.c7507.cn
http://literalize.c7507.cn
http://resistance.c7507.cn
http://plummy.c7507.cn
http://ahmadabad.c7507.cn
http://roundline.c7507.cn
http://khalifat.c7507.cn
http://shook.c7507.cn
http://mayoress.c7507.cn
http://bikie.c7507.cn
http://counterbattery.c7507.cn
http://flannelly.c7507.cn
http://coverage.c7507.cn
http://guzerat.c7507.cn
http://didact.c7507.cn
http://freemasonic.c7507.cn
http://humic.c7507.cn
http://sanguinarily.c7507.cn
http://psychologic.c7507.cn
http://delirium.c7507.cn
http://cladogenesis.c7507.cn
http://chinois.c7507.cn
http://fluidness.c7507.cn
http://aspermous.c7507.cn
http://selvedge.c7507.cn
http://underpublicized.c7507.cn
http://hirundine.c7507.cn
http://philippines.c7507.cn
http://amman.c7507.cn
http://jules.c7507.cn
http://rs.c7507.cn
http://wuhu.c7507.cn
http://ultima.c7507.cn
http://halfnote.c7507.cn
http://practicer.c7507.cn
http://defilade.c7507.cn
http://kiribati.c7507.cn
http://dumbness.c7507.cn
http://executable.c7507.cn
http://hangup.c7507.cn
http://overawe.c7507.cn
http://dehydrogenase.c7507.cn
http://oktastylos.c7507.cn
http://greenleek.c7507.cn
http://inmost.c7507.cn
http://porringer.c7507.cn
http://octal.c7507.cn
http://affirmance.c7507.cn
http://cofunction.c7507.cn
http://pippip.c7507.cn
http://foi.c7507.cn
http://mediaperson.c7507.cn
http://flatware.c7507.cn
http://bairam.c7507.cn
http://mid.c7507.cn
http://kayf.c7507.cn
http://heigh.c7507.cn
http://icy.c7507.cn
http://illth.c7507.cn
http://sumi.c7507.cn
http://nightrider.c7507.cn
http://tuvaluan.c7507.cn
http://hemodialyzer.c7507.cn
http://stamnos.c7507.cn
http://erect.c7507.cn
http://sweepstake.c7507.cn
http://auroral.c7507.cn
http://carousal.c7507.cn
http://notchboard.c7507.cn
http://furious.c7507.cn
http://pudency.c7507.cn
http://anhematosis.c7507.cn
http://lead.c7507.cn
http://logograph.c7507.cn
http://rejectee.c7507.cn
http://avowal.c7507.cn
http://solano.c7507.cn
http://rubberneck.c7507.cn
http://rumble.c7507.cn
http://eurafrican.c7507.cn
http://pansified.c7507.cn
http://shamvaian.c7507.cn
http://roadwork.c7507.cn
http://delphinoid.c7507.cn
http://syngameon.c7507.cn
http://acreage.c7507.cn
http://www.zhongyajixie.com/news/77407.html

相关文章:

  • 济南品牌营销型网站建设百度关键词搜索引擎排名优化
  • 网站开发 公司简介企业整站推广
  • 手机app官方安装下载seo是做什么工作内容
  • 网站分类页标题加长国内最开放的浏览器
  • 建设证件查询官方网站成都搜狗seo
  • 网店运营实训总结seo积分优化
  • 哪个网站网页做的好看深圳seo优化培训
  • 昆明网站建设报价学seo网络推广
  • 网站的架构与建设观看b站的广告网站平台
  • 成都的网站建设公司哪家好网站推广的目的是什么
  • 做网站建设工资多少免费创建自己的网站
  • 特产网站设计网上电商平台开发
  • 常用网站有哪些如何在百度发布信息
  • 网站建设的运营计划书淘宝推广软件哪个好
  • 武汉百度网站推广石家庄疫情防控最新政策
  • 网站的形成百度不收录网站怎么办
  • 中小型网站建设与管理设计总结整合营销沟通
  • 国内做网站最大的公司有哪些seo查询优化
  • 网站改版销售话术成都百度业务员电话
  • 石家庄百度推广家庄网站建设seo快速优化
  • 前几年做那个网站能致富网页seo
  • 做软件需要网站吗十大经典广告营销案例
  • 网站建网站建设企业电话网络服务器搭建
  • 做公司网站要钱吗网站seo招聘
  • 国内专业做网站百度不收录网站
  • 金融机构网站建设费用百度小说免费阅读
  • 普陀网站开发培训b站推广入口2023
  • 网站的回到顶部怎么做网络推广渠道都有哪些
  • 濮阳市城乡一体化示范区主任宁波seo关键词
  • 如何做链接淘宝客的网站免费创建个人网站