System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件通讯,具体为一种基于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
...【技术特征摘要】
1.一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:包括定时任务执行器、消息队列、redis数据库、消息接收模块、处理模块以及节点;
2.根据权利要求1所述的一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:消息队列的数据包括id和操作述。
3.根据权利要求1述的一种基于redis-stream的定时任务分发及多节点处理系统,其特征在于:还包括前端页面展示模块,用于设定定时任务信息和操作信息,并展示消息队列监控信息,并用于向数据库插入定时任务。
4.根据权利要求1所述的一种基于redis...
【专利技术属性】
技术研发人员:冯冰冰,左鹏,徐士强,肖培玉,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。