首页 > 其他分享 >ignite系列之18-Ignite 分布式锁

ignite系列之18-Ignite 分布式锁

时间:2024-08-08 13:29:29浏览次数:13  
标签:ignite acquiredLock 18 Ignite keyValue lock 分布式

Ignite 事务会隐式获得分布式锁,但是有的场景可能需要显式获得锁。IgniteCacheAPI 的 lock()方法会返回 java.util.concurrent.locks.Lock 的实例,其可以获得指定键的显式分布式锁, 通过 IgniteCache.lockAll()方法,也可以在一个集合对象上获得锁。 使用代码示例: IgniteCache<Object, Object> personCache = ignite.getOrCreateCache(cacheName); Lock lock = personCache.lock(keyValue); boolean acquiredLock = false; try { long timeout = 60; acquiredLock = lock.tryLock(timeout, TimeUnit.SECONDS); if(acquiredLock) { transactionMethod(keyValue); }else{ //重试获取锁,或者抛出异常 throw new RuntimeException("Failed to acquired lock for key=" + keyValue + " in " + timeout + " " + TimeUnit.SECONDS.name()); } } catch (InterruptedException e) { LOG.warn("Failed to acquired lock for key=" + keyValue + ",errorMsg:" + e.getMessage()); throw new RuntimeException(e); } finally { if(acquiredLock) { lock.unlock(); } }

标签:ignite,acquiredLock,18,Ignite,keyValue,lock,分布式
From: https://www.cnblogs.com/yangh2016/p/18348734

相关文章

  • IgniteFAQ-2-CacheWriterException: Failed to write entries in database
    ignite同步或者异步落库数据到DB时,如果因为落库的数据不满足db库的要求,如长度、精度、nonull等限制,就会出现落库失败报Failedtowriteentriesindatabase错误。ignite异步落库默认时5秒或者10240条flush一次,失败的数据会不断尝试,当存在一条数据以为数据库要求失败时,会卡住此表......
  • ignite系列之15--使用ignite构建服务端application配置项
    #false为服务端模式,true为客户端模式,此处配置falseignite.clientMode=false#类对等开关,默认开启,此处需要开启ignite.peerClassLoadingEnabled=true#集群发现端口,多个节点部署时端口是一个,localPortRange=1,addresses配置成ip1:port,ip2:portignite.discoverySpi.localPort=47500ig......
  • leetcode 718. 最长重复子数组,leetcode 1143. 最长公共子序列
    leetcode718和leetcode1143两道十分相似的题,就不放题目了思路实际上区别就在于一个要求连续数组,另一个要求不连续的序列。二者的dp表达式和状态转移其实是不一致的,前者f[i][j]代表nums1以i结尾nums2以j结尾的最长子数组长度,后者代表nums1以i结尾nums2以j结尾的区间内存......
  • linux 虚拟机有线网络消失解决方案汇总.18348485
    修复Linux虚拟机有线网络消失的解决方案汇总的一些操作(后续可能会更新)第一种方法:删除var/lib/NetworkManager/文件夹(自测Centos系统有用)1.打开终端,输入以下命令:cd/var/lib2.查询有无文件夹:findNetworkManager3.删除文件夹:rm-rfNetworkManager/4.重启。5.使......
  • 计算机毕业设计项目推荐,院系资料分类管理平台 84184(开题答辩+程序定制+全套文案 )上万
    目 录摘要1绪论1.1研究背景1.2研究意义1.3论文结构与章节安排2 院系资料分类管理平台系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3系统功能分析2.3.1功能性分析2.3.2非功能性分析......
  • 18:Python集合属性
    #Python3集合#集合(set)是一个无序的不重复元素序列。#集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。#集合中元素必须是不可变类型,也就说里面不能是列表和字典#可以使用大括号{}创建集合,元素之间用逗号,分隔,或者也可以使用set()函数创建集合。s......
  • 034.CI4框架CodeIgniter,纯净windows系统,一步步安装composer和CodeIgniter 4.5.4
    安装git选择路径 一路回车安装 安装phpstudy 安装好的界面 下载php8.2.9  点一下默认配置,确定 php版本要选择php8.2.9 需要安装的php扩展如下 点开网站的管理,设置一个根目录 php,启动 在根目录创建一个index.html的文件,用浏览器打开,看看能不能访......
  • Xcode16升级后,如何直接安装iOS 18 Simulator
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!! 苹果官方下载链接:【操作系统OperatingSystems】:https://developer.apple.com/download/【应用Applications】:https://developer.apple.com/download/applications/【描述文件Pr......
  • spring 代码执⾏ (CVE-2018-1273)漏洞
    一漏洞简介SpringData是⼀个⽤于简化数据库访问,并⽀持云服务的开源框架,SpringDataCommons是SpringData下所有⼦项⽬共享的基础框架。SpringDataCommons在2.0.5及以前版本中,存在⼀处SpEL表达式注⼊漏洞,攻击者可以注⼊恶意SpEL表达式以执⾏任意命令    ......
  • [转]相同CRC不同数据的测试.CRC16 - CRC64 test results on 18.2M dataset
    转载自: http://www.backplane.com/matt/crc64.html  CRC16-CRC64testresultson18.2Mdataset,w/programsourceProgram&TestRunbyMattDillon18.2Mmessage-iddatasetsuppliedbyJoeGrecoIwouldliketothankeveryonewhoofferedtheirhistoryf......