一种基于Redis-Stream的定时任务分发及多节点处理系统及方法与流程

文档序号:36914258发布日期:2024-02-02 21:42阅读:33来源:国知局
一种基于Redis-Stream的定时任务分发及多节点处理系统及方法与流程

本发明涉及软件通讯,具体为一种基于redis-stream的定时任务分发及多节点处理系统及方法。


背景技术:

1、消息队列是很多互联网程序中常见的信息传递方式,在使用消息队列时需要同时满足以下需求:及时性、有序性及准确性。当存在多个节点时,也就是多个消费者时同时消费通一个消息时,可能存在某个节点挂掉或者重启时,消息不能及时处理,造成消息遗漏或处理失败的问题。


技术实现思路

1、本发明的目的在于提供一种基于redis-stream的定时任务分发及多节点处理系统及方法,以解决上述背景技术中提出消息队列的多节点分发问题。

2、为实现上述目的,本发明提供如下技术方案:一种基于redis-stream的定时任务分发及多节点处理系统,包括定时任务执行器、消息队列、redis数据库、消息接收模块、处理模块以及节点;

3、定时任务执行器,所述为应用程序中创建的定时任务,用于定时处理创建、删除、执行定时任务;

4、消息队列,为定时任务执行时,将消息传递至消息队列;

5、redis数据库,用于存放消息队列中id对应的数据;

6、消息接收模块,用于接收生产者发送的消息队列中的信息;

7、处理模块,根据接收到的消息,获取id数据,根据id作为key值从redis数据库中获取对应数据;

8、节点,每个节点中的消费者绑定不同的消费者组。

9、优选的,消息队列的数据包括id和操作述。

10、优选的,还包括前端页面展示模块,用于设定定时任务信息和操作信息,并展示消息队列监控信息,并用于向数据库插入定时任务。

11、优选的,还包括消费者组,允许多个消费者组消费stream的消息,使每个消费者组都能收到完整的消息。

12、一种基于redis-stream的定时任务分发及多节点处理方法,所述方法包括以下步骤:

13、生产者创建定时任务;

14、定时任务执行器定时上传消息至redis数据库,同时将包含key值以及操作类型的数据上报至redis-stream消息队列中,redis-stream有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的id和对应的内容;

15、消费者读取到消息队列中的信息,通过读取消息队列中的数据,获取key值,然后获取key的数据信息,消息监听线程通过redis数据库提供的模式订阅功能,监听某类状态信息在redis数据库中的操作,包括写入(set)和删除(del)两类;

16、消费者分布在不同节点上,创建不同的消费者组,确保不同节点的消费者在不同的消费者组中,保证每个节点的消费者都能读取到消息队列中的信息。

17、优选的,每一个stream队列包含多条消息,每条消息由唯一的id进行标识,每条消息以追加的方式添加到stream队列中。

18、与现有技术相比,本发明的有益效果是:

19、本发明提出的基于redis-stream的定时任务分发及多节点处理系统及方法,利用定时任务执行器,可以是消息生产者和消息消费者达到解耦的效果,降低了程序的复杂度,提高了程序的可扩展性和异步性;通过创建多个消费者组的方式,使不同节点的消费者绑定不同消费者组,可使多个节点的消费者程序都能收到消息,保证了消息的有效性。



技术特征:

1.一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:包括定时任务执行器、消息队列、redis数据库、消息接收模块、处理模块以及节点;

2.根据权利要求1所述的一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:消息队列的数据包括id和操作述。

3.根据权利要求1述的一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:还包括前端页面展示模块,用于设定定时任务信息和操作信息,并展示消息队列监控信息,并用于向数据库插入定时任务。

4.根据权利要求1所述的一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:还包括消费者组,允许多个消费者组消费stream的消息,使每个消费者组都能收到完整的消息。

5.一种根据权利要求1-4任意一项所述的基于redis-stream的定时任务分发及多节点处理系统的基于redis-stream的定时任务分发及多节点处理方法,其特征在于:所述方法包括以下步骤:

6.根据权利要求5所述的一种基于redis-stream的定时任务分发及多节点处理方法,其特征在于:每一个stream队列包含多条消息,每条消息由唯一的id进行标识,每条消息以追加的方式添加到stream队列中。


技术总结
本发明涉及软件通讯技术领域,具体为一种基于Redis‑Stream的定时任务分发及多节点处理系统及方法,包括定时任务执行器、消息队列、Redis数据库、消息接收模块、处理模块以及节点;有益效果为:本发明提出的基于Redis‑Stream的定时任务分发及多节点处理系统及方法,利用定时任务执行器,可以是消息生产者和消息消费者达到解耦的效果,降低了程序的复杂度,提高了程序的可扩展性和异步性;通过创建多个消费者组的方式,使不同节点的消费者绑定不同消费者组,可使多个节点的消费者程序都能收到消息,保证了消息的有效性。

技术研发人员:冯冰冰,左鹏,徐士强,肖培玉
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1