定时任务分布式任务实现方案

定时任务的执行在分布式系统中很常见的一个问题,如果多台机器同时执行相同的定时任务,业务复杂则可能出现灾难性的后果。
Zookeeper开源客户端Curator,使用Curator的leader选举功能可以实现
Curator提供了两种选举方案:Leader Latch和Leader Election。
(1)Leader Latch:随机从候选着中选出一台作为leader,选中之后除非调用close()释放leadship,否则其他的后选择无法成为leader。
(2)Leader Election:通过LeaderSelectorListener可以对领导权进行控制,在适当的时候释放领导权,这样每个节点都有可能获得领导权。而LeaderLatch则一直持有leadership,除非调用close方法,否则它不会释放领导权。
我们这里用的是Leader Election。
1.Maven依赖

 <dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>2.10.0</version>
  </dependency>
  <dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>2.10.0</version>
  </dependency>

2.代码
clipboard.png
clipboard.png
clipboard.png
clipboard.png
测试执行方法
clipboard.png

Curator提供了两种方法来实现Leader选举,不仅仅用在定时任务上,其他场景也可以使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值