消息处理服务器及分布式消息处理方法和系统与流程

文档序号:11803483阅读:180来源:国知局
消息处理服务器及分布式消息处理方法和系统与流程
消息处理服务器及分布式消息处理方法和系统【技术领域】本发明涉及通信领域,尤其涉及一种消息处理服务器及分布式消息处理方法和系统。

背景技术:
随着计算机与网络技术的飞速发展,企业计算环境已从传统的集中式变为分布式。许多行业及企业的消息系统在地理上分布广泛,使分布式系统越来越受到重视,并逐渐应用到许多行业中。消息中间件作为解决复杂的大型分布式系统的各个组成部分之间通信以及多个分布式系统之间通信问题的关键技术,在许多关系国计民生的行业关键应用中都扮演至关重要的角色,比如银行、证券、电子商务、交通、政府、能源、邮政、公安等。如,在政务行业省、市、县多级数据传递交换汇总;金融行业,中国人民银行的全国票交影像交换系统和小额支付系统;在交通行业,海事局的船舶与船员管理系统;在能源行业,国家电网公司消息化工程一体化企业级消息集成平台。由于分布式系统的规模越来越庞大,复杂程度也越来越高,有的行业,如银行,邮政等,其消息系统在地理上分布广泛,可以大到全国各省市的乡镇,这就要求消息系统的消息中间件具有极高的可扩展性,并能适应复杂的网络环境,保证消息的传输可靠性以及高效性。请参考图1,现有的消息中间件技术中,解决消息中间件可扩展性的技术主要是采用具有层次拓扑结构的消息中间件系统及消息传递方法。其中,系统中的所有消息中间件分为一个以上的域,每个域具有至少一个消息中间件及一个桥中间件。客户端通过消息中间件在其所在的域内传递消息,并进一步通过桥中间件与其它域的消息中间件传递消息。同一个域内的消息中间件通过对等方式传递消息,不同域的消息中间件之间通过各自域 的消息中间件传递消息,不同域的桥中间件之间通过对等方式传递消息。因此系统中所有的消息中间件一般需要保存有全局同步的路由表,且该路由表需要由各个域的桥中间件之间进行同步;当桥中间件与另一桥中间之间某一路径不同时,通过桥中间件动态选取其他路径。

技术实现要素:
有鉴于此,本发明实施例提供了一种消息处理服务器及分布式消息处理方法和系统。第一方面,本发明实施例提供的消息处理服务器,用于接收和处理来自下属子域的消息,包括:接收模块:用于接收下属子域的发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;查询模块:用于根据路由寻址请求消息从服务器关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域发送路由策略更新命令;发送模块:根据查询模块的发送策略,向源地址对应的源端返回路由寻址请求寻址结果在第一方面的第一种可能的实现方式中,查询模块确定的发送策略为:在发送策略更新命令开始计时的一段预设时间后,通过发送模块向源地址对应的源端返回路由寻址请求寻址结果。在第一方面的第二种可能的实现方式中,查询模块确定的发送策略也可以为:根据下属子域响应策略更新命令而上报给所述接收模块的响应消息,触发所述发送模块向源地址对应的源端返回路由寻址请求寻址结果。结合第一方面的第一种可能或第二种可能的实现方式,所述源地址包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。结合第一方面或第一方面的两种可能的实现方式,所述查询模块还用 于:通过拓扑关系表配置所有下属子域的路由策略和所有下属子域的负载统计数据监控;根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。结合第一方面或第一方面的两种可能的实现方式,所述下属子域中的每个子域至少包括:客户端、消息中间件和代理中间件;所述客户端用于:传输路由寻址请求消息;所述消息中间件用于:收发和检查客户端的寻址请求消息队列,从中取出源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;并通过内设路由表,判断是否是域内的寻址请求;如是域内的寻址请求,则建立域内客户端连接;如果不是域内的寻址请求,则通过代理中间件将寻址请求发送至所述消息处理服务器的接收模块。结合第一方面或第一方面的两种可能的实现方式,所述代理中间件还用于,根据接收到消息中间件的路由寻址请求,优先查询所述代理中间件自有的路由表;如果没有与路由寻址请求匹配的路由,代理中间件向所述接收模块转发路由寻址请求。第二方面,本发明实施例提供的分布式消息处理方法,包括以下步骤:接收下属子域发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;根据路由寻址请求消息从关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域发送路由策略更新命令;根据发送策略,向源地址对应的源端返回路由寻址请求寻址结果。在第二方面的第一种可能的实现方式中,所述确定的发送策略为:在发送策略更新命令开始计时的一段预设时间后,向源地址对应的源端返回路由寻址请求寻址结果。结合第二方面的第二种可能的实现方式,所述确定的发送策略为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发所述服务 器向源地址对应的源端返回路由寻址请求寻址结果。结合第二方面或第二方面的第一种可能或第二种可能的实现方式,所述确定的发送策略为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发所述服务器向源地址对应的源端返回路由寻址请求寻址结果。结合第二方面或第二方面的第一种可能或第二种可能的实现方式,所述源地址包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。结合第二方面或第二方面的第一种可能或第二种可能的实现方式,还包括以下步骤:通过拓扑关系表配置所有下属子域的路由策略和所有下属子域的负载统计数据监控;根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。结合第二方面或第二方面的第一种可能或第二种可能的实现方式,还包括以下步骤:所述下属子域中的每个子域至少包括:客户端、消息中间件和代理中间件;所述客户端用于:传输路由寻址请求消息;所述消息中间件用于:收发和检查客户端的寻址请求消息队列,从中取出源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;并通过内设路由表,判断是否是域内的寻址请求;如是域内的寻址请求,则建立域内客户端连接;如果不是域内的寻址请求,则通过代理中间件将寻址请求发送至所述消息处理服务器。第三方面,本发明实施例提供的分布式消息处理系统,包括:服务器和下属子域,其特征在于,服务器:用于接收下属子域发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;根据路由寻址请求消息从服务器关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向 下属子域发送路由策略更新命令;根据发送策略,向源地址对应的源端返回路由寻址请求寻址结果。在第三方面中的第一种可能中,所述下属子域中的每个子域至少包括:客户端、消息中间件和代理中间件;所述客户端用于:传输路由寻址请求消息;所述消息中间件用于:收发和检查客户端的寻址请求消息队列,从中取出源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;并通过内设路由表,判断是否是域内的寻址请求;如是域内的寻址请求,则建立域内客户端连接;如果不是域内的寻址请求,则通过代理中间件将寻址请求发送至所述消息处理服务器。结合第三方面或第三方面的一种可能的实现方式中,所述服务器确定的发送策略为:在发送策略更新命令开始计时的一段预设时间后,向源地址对应的源端返回路由寻址请求寻址结果。结合第三方面或第三方面的一种可能的实现方式中,所述服务器确定的发送策略为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发所述服务器向源地址对应的源端返回路由寻址请求寻址结果。结合第三方面或第三方面的多种可能的实现方式中,:所述源地址包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。结合第三方面或第三方面的多种可能的实现方式中,所述服务器还用于:通过拓扑关系表配置所有下属子域的路由策略和所有下属子域的负载统计数据监控;根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。通过上述方案,本发明实施例消息处理服务器及分布式消息处理方法和系统,根据路由寻址请求消息从服务器关联的拓扑关系表中确定消息路由,并根据消息路确定发送策略以向下属子域发送路由策略更新命令,进而在服务器上可以实施灵活的路由控制策略,且通过关联的拓扑关系表建立了自配 置可靠的路由选择,保证了系统的高可扩展性。【附图说明】图1为传统的消息处理系统原理示意图;图2为本发明实施例消息处理服务器原理示意图;图3为本发明一个实施例中消息处理服务器与单个子域消息交互示意图;图4为本发明另一实施例消息处理服务器与多个子域消息交互示意图;图5为本发明在一实施例分布式消息处理方法流程图;图6为本发明另一实施例分布式消息处理方法流程图;图7为本发明消息处理服务器与多个子域消息交互信令图。【具体实施方式】下面结合附图和实施例对本发明作进一步的说明:请参阅图2,本发明实施例消息处理服务器200,用于接收和处理来自下属子域的消息,包括:接收模块201、查询模块202和发送模块203。接收模块201用于接收下属子域(图未示)的发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识,以确定源地址和目的地址。查询模块202用于根据路由寻址请求消息从拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域发送路由策略更新命令。发送模块203用于根据查询模块202的发送策略,向源地址对应的源端返回路由寻址请求寻址结果。本发明实施例消息处理服务器200,根据路由寻址请求消息从服务器关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域发送路由策略更新命令,进而在服务器上可以实施灵活的路由控制策略,且通过关联的拓扑关系表建立了自配置可靠的路由选择,保证了系统的高可扩展性。可以理解,这里的拓扑关系表可以是查询模块内设的,也可以是查询模块从其他设备中获取得到。可选的,本发明实施例通过查询模块202确定的发送策略可以为:在发送策略更新命令开始计时的一段预设时间后,通过发送模块203向源地址对应的源端返回路由寻址请求寻址结果。可选的,查询模块202确定的发送策略为:根据下属子域响应策略更新命令而上报给所述接收模块的响应消息,触发发送模块203向源地址对应的源端返回路由寻址请求寻址结果。可以理解,本发明实施例也可以通过其他发送策略触发发送模块203向源地址对应的源端返回路由寻址请求寻址结果或其他消息。可选的,本发明实施例所述源地址包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。进一步的,本发明实施例查询模块202还用于:通过拓扑关系表配置所有下属子域的路由策略和所有下属子域的负载统计数据监控;根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。请一并参考图3所示的分布式消息处理系统,本发明实施例分布式消息处理系统中包括消息处理服务器200和至少一个消息处理服务器200的下属子域300。消息处理服务器200用于接收下属子域200发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识,以确定源地址和目的地址;根据路由寻址请求消息从服务器200关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域200发送路由策略更新命令;根据发送策略,向源地址对应的源端返回路由寻址请求寻址结果。其中,下属子域300中至少包括:客户端301、消息中间件302和代理中间件303。客户端301用于传输路由寻址请求消息,所述路由寻址请求消息中携带:地址标识、地址所在域的域名标识。消息中间件302用于收发和检查客户端的寻址请求消息队列,从中取出源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;并通过内设路由表,判断是否是域内的寻址请求;如是域内的寻址请求,则建立域内客户端之间的连接;如果不是域内的寻址请求,则通过代理中间件303将寻址请求发送 至所述消息处理服务器200的接收模块203。本发明实施例中,代理中间件303还用于根据接收到消息中间件的路由寻址请求,优先查询述代理中间件303自有的路由表;如果没有与路由寻址请求匹配的路由,代理中间件303向服务器200所述的接收模块201(参加图2)转发路由寻址请求。请参阅图4,本发明实施例进一步描述了消息处理服务器200与多个下属子域300协同处理的分布式消息处理系统。本实施例中,分布式消息处理系统的所有消息中间件分为三个的子域,每个子域300具有至少一个消息中间件302及至少一个代理中间件303。每个子域300的代理中间件303与消息处理服务器200连接。客户端(或者应用程序)301通过消息中间件302在其所在的域内传递消息,或者进一步,通过其所在域的代理中间件303与其他域的消息中间件传递消息。消息处理服务器200负责集中配置并管理整网的路由策略;消息处理服务器200还负责由每个域的代理中间件上报的网络拓扑连接及负载性能统计数据,形成整网拓扑以及负载性能数据,并根据整网拓扑以及负载性能监控结果进行动态的智能调度,计算消息的路由。每个域300的代理中间件303与消息处理服务器200连接,负责所在域的路由安全控制策略以及与其他域的代理中间件之间往来传递消息。代理中间件303向消息处理服务器200发送消息路由请求,并接收消息处理服务器200响应的路由转发策略,进行消息传送。可以理解,每个子域300的代理中间件303还可以扩展为具有消息处理服务器200管理能力,从而在子域下级进行分布式管理。其中,分布式消息处理系统消息处理服务器200确定的发送策略可以为:在发送策略更新命令开始计时的一段预设时间后,向源地址对应的源端返回路由寻址请求寻址结果。也可以为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发消息处理服务器200向源地址对应的源端返回路由寻址请求寻址结果。所述源地址可以包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。消息处理服务器200还可用于:通过拓扑关系表配置所有下属子域的路由策略和所有 下属子域的负载统计数据监控;根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。可见,本发明实施例通过对消息处理系统中消息中间件302按照分层分域的方式进行组网,通过集中式消息处理服务器200,对其下属每个子域300的消息中间件302与代理中间件303进一步管理和配置客户端301。可以实现集中式消息路由寻址。可以理解,在多个子域300配合使用时,当接收到某个域的代理消息中间件发来的消息路由请求时,根据整网拓扑与性能统计数据,计算该消息路由,并逐个给路径上的每个代理中间件下发路由策略更新命令以使该消息路由可达。最后消息处理服务器向源客户端(或者应用程序)所属域的代理中间件发送命令要求把该消息发送给路径上的下一跳代理消息中间件或本域的消息中间件,实现多层级消息系统以及高效消息控制传递方法。请参阅图5,本实施例中图示了一种分布式消息处理方法,包括以下步骤:步骤101:接收下属子域发送的路由寻址请求消息;所述路由寻址请求消息中携带:源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识,以确定源地址和目的地址;步骤102:根据路由寻址请求消息从关联的拓扑关系表中确定消息路由,并根据消息路由确定发送策略以向下属子域发送路由策略更新命令;步骤103:根据发送策略,向源地址对应的源端返回路由寻址请求寻址结果。进一步的,步骤102所确定的发送策略具体为:在发送策略更新命令开始计时的一段预设时间后,向源地址对应的源端返回路由寻址请求寻址结果。可选的,步骤102所确定的发送策略还可以为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发所述服务器向源地址对应的源端返回路由寻址请求寻址结果。其中,所述源地址包括源客户端地址和/或源应用程序地址;所述目的地址包括目的客户端地址和/或源应用程序地址。进一步的,请参阅图6,本实施分布式消息处理方法,还包括以下步骤:步骤104:通过拓扑关系表配置所有下属子域的路由策略和所有下属子域的负载统计数据监控;步骤105:根据所有下属子域的路由策略以及负载性能监控结果,确定消息路由。其中,本实施例下属子域中的每个子域至少包括:客户端、消息中间件和代理中间件;所述客户端用于:传输路由寻址请求消息,所述路由寻址请求消息中携带:地址标识、地址所在域的域名标识;所述消息中间件用于:收发和检查客户端的寻址请求消息队列,从中取出源地址标识、源地址所在域的域名标识,目的地址标识,和目的地址所在域的域名标识;并通过内设路由表,判断是否是域内的寻址请求;如是域内的寻址请求,则建立域内客户端连接;如果不是域内的寻址请求,则通过代理中间件将寻址请求发送至所述消息处理服务器。可见,本发明实施例分布式消息处理方法中,根据路由寻址请求消息从服务器关联的拓扑关系表中确定消息路由,并根据消息路确定发送策略以向下属子域发送路由策略更新命令,进而在消息处理服务器上可以实施灵活的路由控制策略,且通过关联的拓扑关系表建立了自配置可靠的路由选择,保证了分布式消息处理系统的高可扩展性。请参阅图7信令流程图,本发明实施例中,图示了子域A通过消息处理服务器建立于子域B的信令连接。其中,子域A中的客户端(或者应用程序)通过步骤501发布某特定消息到其所在子域A中的消息中间件。该寻址消息中携带源客户端(或者应用程序)的地址标识及其域名标识,以及目的地客户端(或者应用程序)地址标识及其域名标识,或者目标主题标识;子域A中的消息中间件接收寻址消息后,执行步骤502:检查其消息队列,从中取出客户端(或者应用程序)消息进行分析,解析出关键消息域。其中,关键消息域包括源客户端(或者应用程序)地址标识及其域名标识, 以及目的地客户端(或者应用程序)地址标识及其域名标识,或者目标主题标识;子域A中消息中间件根据源客户端(或者应用程序)地址标识及其域名标识,以及目的地客户端(或者应用程序)地址标识及其域名标识,执行步骤503:查询己有的路由表,并判断有无匹配的路由。本步骤503中,如果该客户端(或者应用程序)的消息中携带的是目标主题标识,则消息中间件查询己有的订阅关系表,获取订阅者地址列表,然后根据订阅者地址标识及其域名标识,查询己有的路由表,判断有无匹配的路由。如果子域A的消息中间件己有路由表的匹配结果为有路由规则,且目的地址是域内客户端(或者应用程序),则消息中间件根据路由指引发送该消息给与自己有连接关系的目的地客户端(或者应用程序)或者下一跳的消息中间件。如果消息中间件己有路由表的匹配结果为有路由规则,且目的地址是域外,则消息中间件发送该消息给所属域的代理中间件。如果子域A的消息中间件己有路由表的匹配结果为无,则消息中间件通过步骤504向其所属域的代理中间件发送该消息的路由寻址请求。子域A代理中间件接收到其所属域内消息中间件的路由寻址请求后,通过步骤505判断有无匹配路由。步骤505还进一步包括优先查询己有的路由表。如果步骤505判断得出没有匹配的路由,则代理中间件通过步骤506向消息处理服务器转发该特定消息的路由寻址请求;消息处理服务器接收到代理中间件的路由寻址请求后,通过步骤507查询订阅者消息。步骤507具体包括:根据路由寻址请求查询订阅者消息中的关键消息域。其中,关键消息域包括源客户端(或者应用程序)地址标识及其域名标识,以及目的地客户端(或者应用程序)地址标识及其域名标识。在消息处理服务器查询完订阅者消息后,执行步骤508:查询消息处理服务器自身关联的拓扑关系表,根据订阅者消息和拓扑关系表确定出最优消息路由。本步骤中,如果路由寻址请求中携带的是目标主题标识,则消息处理服务器查询订阅关系表,获取订阅者地址列表,然后根据关键消息域,包 括源客户端(或者应用程序)地址标识及其域名标识,以及订阅者地址标识及其域名标识,查询拓扑关系表,从中计算出最优消息路由。确定好最优消息路由后,处理服务器执行步骤509:根据消息路由,查询路由策略表,确定路由策略。本步骤中,路由策略表可以是预配置于处理服务器内,也可以根据系统网络状态实时更新。确定路由策略后,执行步骤510:对于路由上的每个代理中间件,下发命令更新路由表。可选的,对于路由路径上的每个代理中间件,包括源客户端(或者应用程序)所属域的代理中间件,目的地客户端(或者应用程序)所属域的代理中间件,以及路径上的其他代理中间件,逐个下发命令更新每个代理中间件的路由表。本实施例中,可以通过步骤400域A内的代理中间件下发更新路由表;通过步骤401和步骤402向其他不同域的代理中间件下发更新路由表;通过步骤403向目的域(域B)内的代理中间件下发更新路由表。在预设的策略下,消息处理服务器向域A内的代理中间件如在发送策略更新命令开始计时的一段预设时间后,向源地址对应的源端返回路由寻址请求寻址结果。可选的,步骤102所确定的发送策略还可以为:根据下属子域响应策略更新命令而上报给所述服务器的响应消息,触发消息处理服务器向源地址对应的源端返回路由寻址请求寻址结果。可以理解,消息处理服务器通过步骤510被触发下发命令更新路由表后,消息处理服务器执行步骤511:消息处理服务器向域A的代理中间件返回路由寻址请求结果。代理中间件随后执行步骤512:代理中间件域A的消息中间件返回路由寻址请求结果。域A的消息中间件之后执行步骤513:根据返回路由寻址请求结果发送该特种消息给域A的代理中间件。最后该经步骤514:域A的代理中间件转发该特种消息给其他域代理中间件;步骤515:其他域代理中间件转发该特种消息给另一个域的代理中间件;步骤516:另一个域的代理中间件转发该特种消息给域B的代理中间件;步骤517:域B的代理中间件转发该特种消息给域B的消息中间件;步骤518:域B的消息中间件转发该特种消息给域B的客户端。进而完成该特种消息由域A客户端到 给域B客户端的发送。具体的,步骤511中,消息处理服务器向源客户端(或者应用程序)所属域的代理中间件返回路由寻址请求的结果,包括目的地客户端(或者应用程序)地址标识及其域名标识,以及路由的下一跳的地址;步骤512中,源客户端(或者应用程序)所属域(域A)的代理中间件接收到消息处理服务器返回的路由寻址请求的结果,则转发该路由寻址请求的结果给与源客户端(或者应用程序)直接连接的消息中间件;步骤513中,与源客户端(或者应用程序)直接连接的消息中间件根据路由指引,发布该消息给其所属域的代理中间件;步骤514及其它后续步骤中,源客户端(或者应用程序)所属域的代理中间件根据路由指引,发布该消息给路径上的其他域的代理中间件,直到送达目的地的客户端(或者应用程序)。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令等相关硬件来完成,所述的程序可存储于一计算机可读存储介质中,该程序执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。由此可见,本发明提供了消息处理服务器及分布式消息处理方法和系统,并提供了多种可选适配方案,以上实施例并非限制本发明所描述的技术方案,因此,尽管本说明书参照上述的各个实施例对本发明已进行了说明,本领域的相关人员应当理解,一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1