温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

利用zookeeper怎么实现分布式锁

发布时间:2021-06-18 14:53:00 来源:亿速云 阅读:162 作者:Leah 栏目:大数据

这期内容当中小编将会给大家带来有关利用zookeeper怎么实现分布式锁,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

pom文件

<dependency>
   <groupId>org.apache.zookeeper</groupId>
   <artifactId>zookeeper</artifactId>
   <version>3.4.6</version>
</dependency>
<dependency>
   <groupId>org.apache.curator</groupId>
   <artifactId>curator-recipes</artifactId>
   <version>4.0.1</version>
</dependency>

Spring集成

<!-- 重连策略 -->
<bean id="retryPolicy" class="org.apache.curator.retry.ExponentialBackoffRetry">
   <!-- 间隔时间基数 -->
   <constructor-arg index="0" value="1000" />
   <!-- 重连策略 -->
   <constructor-arg index="1" value="3" />
</bean>

<bean id="curatorFramework" class="org.apache.curator.framework.CuratorFrameworkFactory" factory-method="newClient" init-method="start">
   <constructor-arg index="0" value="#{globalConfig.zk_address}" />
   <!-- sessionTimeoutMs会话超时时间,单位为毫秒。默认是60000ms  -->
   <constructor-arg index="1" value="5000" />
   <!-- connectionTimeoutMs连接创建超时时间,单位毫秒,默认15000ms -->
   <constructor-arg index="2" value="3000" />
   <constructor-arg index="3" ref="retryPolicy" />
</bean>

@Autowired    

private CuratorFramework curatorFramework;

//定义锁路径

String path = "/lock/discount/" + discountId;        

InterProcessMutex lock = new InterProcessMutex(curatorFramework, path);

//获取锁 

if (lock.acquire(3000, TimeUnit.MILLISECONDS)) {

//do something

}

//释放锁

lock.release();

上述就是小编为大家分享的利用zookeeper怎么实现分布式锁了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI