您的位置:首页 > 数据库 > Redis

分布式定时任务解决方案-spring boot整合JMS以及Redis实现

2017-03-20 18:29 791 查看
最近需要设计一个分布式的定时任务的方案,从理论上来说,Quartz已经提供了一套完善的分布式定时任务的解决方案,但是由于系统目前已有JMS集群和Redis Sentinel集群,如果想要在目前已有的架构上,实现了一个简单的分布式定时任务的话,如何来做了?总体架构设计图如下:



redis集群:提供分布式的缓存,以及实现简单的分布式锁http://blog.csdn.net/liuchuanhong1/article/details/54668460

Node1~Node3节点:定时从数据库中查询需要执行的任务,由于查询的结果是List,如果3个Node节点同时查库,并将查询的结果推送到中间件集群中,那么待执行的任务肯定是会重复的(分库的话,另说)。换句话说,同一时间,只允许一个Node节点活动,没有获取到分布式锁的节点则阻塞,直到获取到锁,同时避免出现单节点故障。

JMS集群:解耦,Node节点会将从数据库中查询出的待处理任务推送到JMS对应的队列中。

Execute Node节点:监听JMS的队列,并从队列中取出待执行的任务,并异步执行http://blog.csdn.net/liuchuanhong1/article/details/54603546
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: