消息的跨集群路由转发方法及系统与流程

文档序号:24298247发布日期:2021-03-17 00:48阅读:74来源:国知局
消息的跨集群路由转发方法及系统与流程

本发明涉及消息中间件技术领域,尤其涉及消息的跨集群路由转发方法及系统。



背景技术:

目前,业内实现消息的跨集群路由转发功能时,只能在业务端依赖于storm、flink等流式计算任务或其他类似的自研服务实现,topic中被路由的消息通过计算管道完成路由规则匹配,然后经由sink写入到对应的集群,最终达到消息被路由转发的目的。这种实现路由转发功能的方法中存在的缺陷也很明显,由于每个被路由的topic都对应一个路由转发任务,因此,随着业务量和业务规模的增长,被路由的topic的数量增多,路由转发任务的数量也随之增多,此外,每次进行路由规则调整、新增被路由的topic等变更操作时,都需要业务端进行重新开发、编译、运行等冗余复杂的维护工作,不仅维护成本增长,还会增加额外计算资源的消耗。



技术实现要素:

本发明的目的在于提供消息的跨集群路由转发方法及系统,通过在服务端进行路由规则配置以实现消息的跨集群路由复制转发功能,维护成本低,节约计算资源。

为了实现上述目的,本发明提供如下技术方案:

一种消息的跨集群路由转发方法,包括:

服务端获取分布式协调系统中被写入的路由规则配置记录;

服务端利用topic中的路由规则解析器将所述路由规则配置记录转换成对应的路由规则执行器;

服务端利用所述路由规则执行器对topic中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表;

服务端利用topic中的路由复制器依据所述路由集群列表将消息转发到对应的集群。

优选地,服务端获取分布式协调系统中被写入的路由规则配置记录的方法包括:

将路由逻辑抽象为json格式的路由规则配置记录,并写入分布式协调系统;

服务端基于分布式协调系统的监听通知机制获取所述路由规则配置记录,并将所述路由规则配置记录更新到内存中。

具体地,所述路由规则配置记录包括用于新增路由规则的配置记录、用于更改路由规则的配置记录以及用于删除路由规则的配置记录。

较佳地,服务端利用topic中的路由规则解析器将所述路由规则配置记录转换成对应的路由规则执行器的方法包括:

服务端匹配得到所述路由规则配置记录所属的topic;

在被匹配的topic中继续匹配得到所述路由规则配置记录所属的路由复制单元;

利用路由规则复制单元中的路由规则解析器,将所述路由规则配置记录解析并转换成对应的路由规则执行器。

进一步地,利用路由规则复制单元中的路由规则解析器,将所述路由规则配置记录解析并转换成对应的路由规则执行器的方法包括:

若topic中没有匹配到所述路由规则配置记录所属的路由复制单元,则新增路由规则复制单元,并利用新增的路由规则复制单元中的路由规则解析器,将所述路由规则配置记录解析并转换成对应的路由规则执行器;

若topic中匹配到所述路由规则配置记录所属的路由复制单元,则利用匹配到的路由复制单元中的路由规则解析器,将所述路由规则配置记录解析并转换成对应的路由规则执行器,并用转换得到的路由规则执行器替换原有的路由规则执行器;

若topic中包括不能与任一所述路由规则配置记录相匹配的多余的路由复制单元,则删除所述多余的路由复制单元

具体地,利用匹配到的路由复制单元中的路由规则解析器,将所述路由规则配置记录解析并转换成对应的路由规则执行器,删除原有的路由规则执行器的方法包括:

关闭匹配到的路由复制单元的路由开关;

利用路由规则解析器将所述路由规则配置记录解析并转换成对应的路由规则执行器,并用转换得到的路由规则执行器替换原有的路由规则执行器;

打开匹配到的路由复制单元的路由开关。

优选地,所述路由规则执行器根据topic中每条消息的路由字段进行路由规则匹配,得到每条消息对应的路由集群列表,路由复制单元中的路由复制器依据所述路由集群列表将消息转发到对应的集群。

较佳地,所述消息的跨集群路由转发方法还包括:

服务端获取分布式协调系统中被写入的路由开关配置记录,并依据所述路由开关配置记录配置路由复制单元的开关状态。

具体地,服务端获取分布式协调系统中被写入的路由开关配置记录,并依据所述路由开关配置记录配置路由复制单元的开关状态的方法包括:

服务端基于分布式协调系统的监听通知机制获取分布式协调系统中被写入的路由开关配置记录,并将所述路由开关配置记录更新到内存中;

服务端匹配得到所述路由开关配置记录所属的topic;

在被匹配的topic中继续匹配得到所述路由开关配置记录所属的路由复制单元,依据所述路由开关配置记录配置被匹配的路由复制单元的开关状态。

一种消息的跨集群路由转发系统,包括服务端和分布式协调系统,所述服务端包括配置获取模块及至少一个topic,所述topic包括路由复制单元和消息管理单元,所述路由复制单元包括路由规则解析器、路由规则执行器和路由复制器,其中,

所述配置获取模块,用于获取分布式协调系统中被写入的路由规则配置记录,并通知所述路由规则解析器;

所述路由规则解析器,用于将所述路由规则配置记录转换成对应的路由规则执行器;

所述路由规则执行器,用于对所述消息管理单元中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表;

所述路由复制器,用于依据所述路由集群列表将消息转发到对应的集群。

与现有技术相比,本发明提供的消息的跨集群路由转发方法及系统具有以下有益效果:

本发明提供的消息的跨集群路由转发方法,将路由的计算任务抽象为简单的路由规则配置记录,写入分布式协调系统中,服务端利用topic中的路由规则解析器将所述路由规则配置记录转换成对应的路由规则执行器,再利用所述路由规则执行器对topic中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表,进而利用topic中的路由复制器依据所述路由集群列表将消息转发到对应的集群,实现了通过在服务端依赖分布式协调系统进行路由规则配置来完成消息的跨集群路由复制转发,不需要业务端进行开发、编译、运行等工作,维护成本低,且节约了计算资源。

本发明提供的消息的跨集群路由转发系统,采用上述消息的跨集群路由转发方法,通过在服务端进行路由规则配置来实现消息的跨集群路由复制转发,避免了额外计算资源的消耗,降低了维护成本。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中消息的跨集群路由转发方法的流程示意图;

图2为本发明实施例中服务端利用topic中的路由规则解析器将路由规则配置记录转换成对应的路由规则执行器的方法流程示意图;

图3为本发明实施例中路由开关控制方法的流程示意图;

图4为本发明实施例中跨集群路由转发系统的模块示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。

实施例一

请参阅图1,本发明实施例提供一种消息的跨集群路由转发方法,包括:

服务端获取分布式协调系统中被写入的路由规则配置记录;

服务端利用topic中的路由规则解析器将路由规则配置记录转换成对应的路由规则执行器;

服务端利用路由规则执行器对topic中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表;

服务端利用topic中的路由复制器依据路由集群列表将消息转发到对应的集群。

本发明实施例提供的消息的跨集群路由转发方法,将路由的计算任务抽象为简单的路由规则配置记录,写入分布式协调系统中,服务端利用topic中的路由规则解析器将所述路由规则配置记录转换成对应的路由规则执行器,再利用所述路由规则执行器对topic中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表,进而利用topic中的路由复制器依据所述路由集群列表将消息转发到对应的集群,实现了通过在服务端进行路由规则配置来完成消息的跨集群路由复制转发,不需要业务端进行重新开发、编译、运行等冗余复杂的维护工作,维护成本低,且节约了计算资源。

其中,服务端获取分布式协调系统中被写入的路由规则配置记录的方法包括:

将路由逻辑抽象为json格式的路由规则配置记录,并写入分布式协调系统;

服务端基于分布式协调系统的监听通知机制获取路由规则配置记录,并将路由规则配置记录更新到内存中。

在具体实施过程中,路由规则配置记录包括用于新增路由规则的配置记录、用于更改路由规则的配置记录以及用于删除路由规则的配置记录。分布式协调系统可以选用zookeeper,服务端为分布式的消息发布/订阅平台,即消息中间件,路由规则配置记录中指定需要匹配的topic及topic中的路由复制单元的唯一标识,可以利用服务端根据该唯一标识采用单播方式将路由规则配置记录发送给对应的topic,也可以选用具备topic相关配置变更管理模块的服务端,例如选用pulsar作为服务端,pulsar收到新的路由规则配置记录后,利用topic相关配置变更管理模块将该路由规则配置记录广播出去,并由与该唯一标识相匹配的topic接收该路由规则配置记录。

具体的路由逻辑及路由计算任务都是以路由规则配置记录的形式被更新到分布式协调系统上,服务端依赖分布式协调系统的监听通知机制实现对规则配置记录的监听功能。

请参阅图2,本发明实施例提供的消息的跨集群路由转发方法中,服务端利用topic中的路由规则解析器将路由规则配置记录转换成对应的路由规则执行器的方法包括:

服务端匹配得到路由规则配置记录所属的topic;

在被匹配的topic中继续匹配得到路由规则配置记录所属的路由复制单元;

利用路由规则复制单元中的路由规则解析器,将路由规则配置记录解析并转换成对应的路由规则执行器,在具体实施中,若topic中没有匹配到路由规则配置记录所属的路由复制单元,则新增路由规则复制单元,并利用新增的路由规则复制单元中的路由规则解析器,将路由规则配置记录解析并转换成对应的路由规则执行器;若topic中匹配到路由规则配置记录所属的路由复制单元,则利用匹配到的路由复制单元中的路由规则解析器,将路由规则配置记录解析并转换成对应的路由规则执行器,并用转换得到的路由规则执行器替换原有的路由规则执行器;若topic中包括不能与任一所述路由规则配置记录相匹配的多余的路由复制单元,则删除所述多余的路由复制单元,以使路由规则配置记录与路由规则执行器一一对应,避免消息在路由过程中出现错误。

其中,利用匹配到的路由复制单元中的路由规则解析器,将路由规则配置记录解析并转换成对应的路由规则执行器,删除原有的路由规则执行器的方法包括:

关闭匹配到的路由复制单元的路由开关;

利用路由规则解析器将路由规则配置记录解析并转换成对应的路由规则执行器,并用转换得到的路由规则执行器替换原有的路由规则执行器;

打开匹配到的路由复制单元的路由开关。

路由规则解析器将json格式的路由规则配置记录经由解析和转换得到代码能识别和运行的路由规则执行器,不同的路由规则配置记录会被解析和转换成不同的无状态的路由规则执行器,一个路由规则配置记录对应被解析并转成一个路由规则执行器,而一个路由复制单元中也仅有一个路由规则执行器,而选用无状态的路由规则执行器,当需要更换节点时,无需重复在之前节点执行过的操作,容错恢复方便,更新完一次路由规则配置记录后,服务端会继续监听分布式协调系统中是否被写入新的路由规则配置记录。

最终,路由规则执行器根据topic中每条消息的路由字段进行路由规则匹配,得到每条消息对应的路由集群列表,路由复制单元中的路由复制器依据路由集群列表将消息转发到对应的集群。将路由规则配置记录转换为路由规则执行器,以获取消息对应的路由集群列表,最终实现消息的路由转发复制,当要进行路由规则调整、新增被路由的topic等变更操作时,无需业务端进行重新开发、编译、运行等冗余复杂的维护工作,维护成本低,且节约了计算资源。

由于路由复制功能会有性能损耗,随着数据量的增大性能的消耗也会随着增大。因此为了应对电商大促等流量洪峰带来的集群性能压力问题,本发明实施例提供的消息的跨集群路由转发方法还包括路由开关控制方法,即服务端获取分布式协调系统中被写入的路由开关配置记录,并依据路由开关配置记录配置路由复制单元的开关状态,待流量高峰之后再做路由复制以减缓流量峰值阶段的性能压力。请参阅图3,路由开关控制方法具体包括:

服务端基于分布式协调系统的监听通知机制获取分布式协调系统中被写入的路由开关配置记录,并将路由开关配置记录更新到内存中;

服务端匹配得到路由开关配置记录所属的topic;

在被匹配的topic中继续匹配得到路由开关配置记录所属的路由复制单元,依据路由开关配置记录配置被匹配的路由复制单元的开关状态。

需要注意的是,路由开关配置记录与路由规则配置记录一一对应,若路由复制单元没有匹配到对应的路由规则配置记录,则路由开关配置记录将不会继续匹配topic和路由复制单元,也不会被执行。未被匹配的路由规则复制单元无需更改开关状态,即,未被匹配的路由规则复制单元所对应的topic无需修改该路由规则复制单元的开关状态,由服务端继续监听分布式协调系统中是否被写入路由开关配置记录;被匹配的路由规则复制单元对应的topic则依据路由开关配置记录配置被匹配的路由复制单元的开关状态,开关关闭则暂停消息的路由功能,开关打开则进行执行消息的路由功能,然后由服务端继续监听分布式协调系统中是否被写入路由开关配置记录。

实施例二

请参阅图4,本发明实施例提供一种消息的跨集群路由转发系统,包括服务端和分布式协调系统,服务端包括配置获取模块及至少一个topic,topic包括路由复制单元和消息管理单元,路由复制单元包括路由规则解析器、路由规则执行器和路由复制器,其中,

配置获取模块,用于获取分布式协调系统中被写入的路由规则配置记录,并通知路由规则解析器;

路由规则解析器,用于将路由规则配置记录转换成对应的路由规则执行器;

路由规则执行器,用于对消息管理单元中需要路由的消息进行路由规则匹配,得到消息对应的路由集群列表;

路由复制器,用于依据路由集群列表将消息转发到对应的集群。

该消息的跨集群路由转发系统中,所述配置获取模块还用于获取分布式协调系统中被写入的路由开关配置记录,利用路由策略管理模块匹配到对应的topic及topic中的路由复制单元,topic依据路由开关配置记录配置路由复制单元的开关状态,待流量高峰之后再做路由复制以减缓流量峰值阶段的性能压力。

本发明提供的消息的跨集群路由转发系统,采用上述实施例一中的消息的跨集群路由转发方法,通过在服务端进行路由规则配置来实现消息的跨集群路由复制转发,避免了额外计算资源的消耗,降低了维护成本。与现有技术相比,本发明实施例提供的消息的跨集群路由转发系统的有益效果与上述实施例一提供的消息的跨集群路由转发方法的有益效果相同,且该系统中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。

在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1