婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 如何操作Redis和zookeeper實現(xiàn)分布式鎖

如何操作Redis和zookeeper實現(xiàn)分布式鎖

熱門標簽:玄武湖地圖標注 太原營銷外呼系統(tǒng) 竹間科技AI電銷機器人 地圖標注費用 西藏教育智能外呼系統(tǒng)價格 地圖標注如何即時生效 最簡單的百度地圖標注 百度商家地圖標注怎么做 小紅書怎么地圖標注店

如何操作Redis和zookeeper實現(xiàn)分布式鎖

在分布式場景下,有很多種情況都需要實現(xiàn)最終一致性。在設計遠程上下文的領域事件的時候,為了保證最終一致性,在通過領域事件進行通訊的方式中,可以共享存儲(領域模型和消息的持久化數(shù)據(jù)源),或者做全局XA事務(兩階段提交,數(shù)據(jù)源可分開),也可以借助消息中間件(消費者處理需要能冪等)。通過Observer模式來發(fā)布領域事件可以提供很好的高并發(fā)性能,并且事件存儲也能追溯更小粒度的事件數(shù)據(jù),使各個應用系統(tǒng)擁有更好的自治性。

1.分布式鎖

分布式鎖一般用在分布式系統(tǒng)或者多個應用中,用來控制同一任務是否執(zhí)行或者任務的執(zhí)行順序。在項目中,部署了多個tomcat應用,在執(zhí)行定時任務時就會遇到同一任務可能執(zhí)行多次的情況,我們可以借助分布式鎖,保證在同一時間只有一個tomcat應用執(zhí)行了定時任務。

2.分布式鎖的實現(xiàn)方式

  • 使用redis的setnx()和expire()
  • 使用redis的getset()
  • 使用zookeeper的創(chuàng)建節(jié)點node
  • 使用zookeeper的創(chuàng)建臨時序列節(jié)點

3.使用redis的setnx()和expire()來實現(xiàn)分布式鎖

setnx(key,value) 如果key不存在,設置為當前key的值為value;如果key存在,直接返回。
expire()來設置超時時間

定義注解類:

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Lockable{
  // redis緩存key
  String key();
  // redis緩存key中的數(shù)據(jù)
  String value() default "";
  // 過期時間(秒),默認為一分鐘
  long expire() default 60;
}

定時任務增加注解@Lockable:

 @Lockable(key = "DistributedLock:dealExpireRecords")
 public void dealExpireRecords() {
 }

定義一個aop切面LockAspect,使用@Around處理所有注解為@Lockable的方法,通過連接點確認此注解是用在方法上,通過方法獲取注解信息,使用setIfAbsent來判斷是否獲取分布式鎖,如果沒有獲取分布式鎖,直接返回;如果獲取到分布式鎖,通過expire設置過期時間,并調用指定方法。

@Component
@Slf4j
@Aspect
public class LockAspect {

  @Autowired
  private RedisTemplate redisTemplate;

  @Around("@annotation(com.records.aop.Lockable)")
  public Object distributeLock(ProceedingJoinPoint pjp) {
    Object resultObject = null;

    //確認此注解是用在方法上
    Signature signature = pjp.getSignature();
    if (!(signature instanceof MethodSignature)) {
      log.error("Lockable is method annotation!");
      return resultObject;
    }

    MethodSignature methodSignature = (MethodSignature) signature;
    Method targetMethod = methodSignature.getMethod();

    //獲取注解信息
    Lockable lockable = targetMethod.getAnnotation(Lockable.class);
    String key = lockable.key();
    String value = lockable.value();
    long expire = lockable.expire();

    // 分布式鎖,如果沒有此key,設置此值并返回true;如果有此key,則返回false
    boolean result = redisTemplate.boundValueOps(key).setIfAbsent(value);
    if (!result) {
      //其他程序已經(jīng)獲取分布式鎖
      return resultObject;
    }

    //設置過期時間,默認一分鐘
    redisTemplate.boundValueOps(key).expire(expire, TimeUnit.SECONDS);

    try {
      resultObject = pjp.proceed(); //調用對應方法執(zhí)行
    } catch (Throwable throwable) {
      throwable.printStackTrace();
    }
    return resultObject;
  }
}

4.使用redis的getset()來實現(xiàn)分布式鎖

此方法使redisTemplate.boundValueOps(key).getAndSet(value)的方法,如果返回空,表示獲取了分布式鎖;如果返回不為空,表示分布式鎖已經(jīng)被其他程序占用

5.使用zookeeper的創(chuàng)建節(jié)點node

使用zookeeper創(chuàng)建節(jié)點node,如果創(chuàng)建節(jié)點成功,表示獲取了此分布式鎖;如果創(chuàng)建節(jié)點失敗,表示此分布式鎖已經(jīng)被其他程序占用(多個程序同時創(chuàng)建一個節(jié)點node,只有一個能夠創(chuàng)建成功)

6.使用zookeeper的創(chuàng)建臨時序列節(jié)點

使用zookeeper創(chuàng)建臨時序列節(jié)點來實現(xiàn)分布式鎖,適用于順序執(zhí)行的程序,大體思路就是創(chuàng)建臨時序列節(jié)點,找出最小的序列節(jié)點,獲取分布式鎖,程序執(zhí)行完成之后此序列節(jié)點消失,通過watch來監(jiān)控節(jié)點的變化,從剩下的節(jié)點的找到最小的序列節(jié)點,獲取分布式鎖,執(zhí)行相應處理,依次類推......

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • C# 實現(xiàn)Zookeeper分布式鎖的參考示例
  • 分布式鎖為什么要選擇Zookeeper而不是Redis?看完這篇你就明白了
  • ZooKeeper 實現(xiàn)分布式鎖的方法示例
  • 淺談Java(SpringBoot)基于zookeeper的分布式鎖實現(xiàn)
  • 淺談分布式鎖的幾種使用方式(redis、zookeeper、數(shù)據(jù)庫)
  • zookeeper實現(xiàn)分布式鎖
  • java使用zookeeper實現(xiàn)的分布式鎖示例
  • 分析ZooKeeper分布式鎖的實現(xiàn)

標簽:唐山 廣東 香港 澳門 景德鎮(zhèn) 林芝 贛州 揚州

巨人網(wǎng)絡通訊聲明:本文標題《如何操作Redis和zookeeper實現(xiàn)分布式鎖》,本文關鍵詞  如何,操作,Redis,和,zookeeper,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何操作Redis和zookeeper實現(xiàn)分布式鎖》相關的同類信息!
  • 本頁收集關于如何操作Redis和zookeeper實現(xiàn)分布式鎖的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    heyzo一本久久综合| 天堂久久一区二区三区| 国产精品三级在线观看| 88在线观看91蜜桃国自产| 国产色91在线| 亚洲欧美aⅴ...| 狠狠色综合播放一区二区| 东方欧美亚洲色图在线| 欧美精品粉嫩高潮一区二区| 国产农村妇女毛片精品久久麻豆| 国产精品嫩草影院av蜜臀| 免费在线观看视频一区| 99视频精品在线| 日韩欧美国产综合在线一区二区三区| 亚洲欧美偷拍卡通变态| 国产真实乱偷精品视频免| 亚洲视频你懂的| 国产成人av影院| 这里只有精品电影| 1区2区3区精品视频| 成人三级伦理片| 一区二区三区 在线观看视频| 石原莉奈在线亚洲二区| 99re在线视频这里只有精品| 成人精品国产福利| 欧美日韩在线综合| 欧美日韩国产高清一区| 一区二区三区在线免费播放 | 7878成人国产在线观看| 一区二区三区在线看| 极品少妇一区二区三区精品视频| 欧美日本国产视频| 国产清纯白嫩初高生在线观看91| 另类综合日韩欧美亚洲| 91精品国产一区二区三区蜜臀| 一区二区三区日韩| 色综合久久天天| 久久精品一区四区| 免费观看日韩av| 韩国精品一区二区| 久久精品这里都是精品| 日本aⅴ免费视频一区二区三区| 99久久99久久免费精品蜜臀| 久久这里只有精品6| 1区2区3区国产精品| 色综合天天综合在线视频| 亚洲欧美日韩在线| 色先锋久久av资源部| 亚洲色图视频免费播放| 岛国av在线一区| 国产亚洲综合在线| www.亚洲精品| 亚洲欧洲另类国产综合| 91一区一区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 亚洲国产成人午夜在线一区| 成人av一区二区三区| 久久久777精品电影网影网 | 成人动漫精品一区二区| 亚洲激情在线激情| 国产精品亚洲一区二区三区妖精| 26uuu精品一区二区在线观看| 久久国内精品视频| 国产精品理伦片| 成人午夜在线播放| 日韩欧美亚洲国产另类 | 国产在线视频不卡二| 中文字幕不卡一区| 欧美日韩一区二区三区视频| 久久福利资源站| 国产精品视频你懂的| 欧美精品粉嫩高潮一区二区| 奇米色一区二区| 日韩欧美123| 91视频观看免费| 精彩视频一区二区| 一区二区免费视频| 欧美色倩网站大全免费| 国产成人精品免费网站| 亚洲成在线观看| 国产精品久久久久久久久快鸭| 欧美精品在线视频| 99视频在线精品| 久久69国产一区二区蜜臀| 亚洲一区二区精品久久av| 国产毛片精品国产一区二区三区| 亚洲激情图片一区| 中文字幕欧美区| 欧美成人性福生活免费看| 欧美日韩中文字幕一区| 波多野结衣中文字幕一区| 亚洲电影激情视频网站| 亚洲图片欧美激情| 国产欧美精品一区| 久久亚洲综合av| 日韩视频免费观看高清完整版在线观看| 99久久99久久精品免费观看| 久久99久久精品欧美| 亚洲bdsm女犯bdsm网站| 亚洲美女在线一区| 国产精品视频一二三区| 久久精品欧美一区二区三区麻豆| 日韩欧美国产综合| 91精品国产色综合久久ai换脸| 在线免费不卡视频| 欧美在线影院一区二区| 99久久精品免费精品国产| 丁香一区二区三区| 国产精品一区二区视频| 激情偷乱视频一区二区三区| 蜜臀a∨国产成人精品| 秋霞影院一区二区| 午夜视频一区在线观看| 婷婷夜色潮精品综合在线| 亚洲电影一区二区| 欧美日韩高清影院| 欧美三区免费完整视频在线观看| 色噜噜偷拍精品综合在线| 92国产精品观看| 日本福利一区二区| 欧美日韩高清影院| 日韩免费观看高清完整版| 精品嫩草影院久久| 国产欧美一区二区精品性| 中文av一区二区| 成人免费在线视频观看| 亚洲欧美日韩系列| 成人一区二区三区视频在线观看| 亚洲欧美色图小说| 亚洲福利视频三区| 国精产品一区一区三区mba视频 | 欧美色倩网站大全免费| 欧美精品 国产精品| 欧美一区二区久久久| 久久久精品人体av艺术| 国产精品网友自拍| 一区二区三区.www| 麻豆91精品91久久久的内涵| 国产99久久久国产精品潘金 | 国产精品一级二级三级| 床上的激情91.| 欧美日韩色综合| 久久九九国产精品| 一区二区三区国产精华| 精品少妇一区二区三区| 国产精品麻豆欧美日韩ww| 亚洲黄色小说网站| 黑人巨大精品欧美一区| eeuss鲁片一区二区三区在线观看| 欧美日韩一区不卡| 久久久国产精华| 午夜精品久久久久久久久久久| 国产九色精品成人porny| 在线日韩av片| 久久青草国产手机看片福利盒子 | 亚洲成人手机在线| 国产精品国产自产拍高清av王其 | 亚洲综合视频网| 极品少妇xxxx精品少妇| 91影院在线观看| 26uuu精品一区二区三区四区在线| 亚洲乱码一区二区三区在线观看| 精品一区精品二区高清| 91高清在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 偷拍一区二区三区| 日本二三区不卡| 中文一区二区完整视频在线观看| 日韩成人dvd| 欧洲精品在线观看| 国产精品三级在线观看| 极品瑜伽女神91| 欧美一区二区在线看| 一区二区欧美国产| www.亚洲人| 欧美高清在线精品一区| 另类小说综合欧美亚洲| 日本在线观看不卡视频| 色综合久久66| 国产精品第13页| 成人午夜av电影| 国产亚洲精品资源在线26u| 免费在线看成人av| 欧美一区二区三区视频免费| 一区二区三区高清| 91蜜桃在线免费视频| 国产精品白丝在线| 成人国产在线观看| 国产精品视频一区二区三区不卡| 精彩视频一区二区三区| 久久夜色精品国产噜噜av| 国产精品1区2区| 精品欧美久久久| 国产美女精品在线| 久久久无码精品亚洲日韩按摩| 久久99久久99小草精品免视看| 欧美一区二区成人6969| 国产乱码精品一区二区三区av| 国产成人在线观看| 亚洲国产岛国毛片在线|