分布式锁和分布式定时任务

0

以前微服务里面使用定时任务,都是只启动一个定时任务,但是这个服务挂了就GG。

我的解决思路就是用分布式锁来实现,每次只有获得锁的服务才可以执行定时任务。

分布式锁可以使用redis、zookeeper或者数据库表。

redis

为了防止服务挂掉,需要设置一个锁的过期时间,然后每次获得锁进行续期。

zookeeper

zookeeper可以设置临时节点服务挂了会自动释放。

数据库表

和redis类似

全是理论没有实践

实践项目

有兴趣的同学可以看下:https://gitee.com/acgist/distributed