用于进行消息路由的方法与设备的制造方法

文档序号:10492110阅读:162来源:国知局
用于进行消息路由的方法与设备的制造方法
【专利摘要】本申请的目的是提供一种用于进行消息路由的方法与设备;获取待路由的目标消息;将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用;将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。与现有技术相比,本申请通过所述第一网络设备和所述第二网络设备之间的配合工作,基于所设置的有效的跨机房消息通信策略来缓解消息处理的压力,从而高效地实现了跨机房的消息路由。
【专利说明】
用于进行消息路由的方法与设备
技术领域
[0001]本申请涉及计算机领域,尤其涉及用于进行消息路由的技术。
【背景技术】
[0002]当系统需要处理的消息流量较大时,若是大量的消息都在同一机房的设备之间进行传递和处理可能会出现消息堵塞、请求反应时间较长等问题;若是按照单一机房的逻辑扩容多个机房,会导致跨单元访问,严重影响请求响应时间。

【发明内容】

[0003]本申请的目的是提供用于进行消息路由的方法与设备。
[0004]根据本申请的一个方面,提供了一种在第一网络设备端进行消息路由的方法,包括:
[0005]获取待路由的目标消息;
[0006]将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。
[0007]根据本申请的另一方面,还提供了一种在第二网络设备端进行消息路由的方法,包括:
[0008]接收由第一网络设备发送至第二网络设备的目标消息,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集;
[0009]将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。
[0010]根据本申请的再一方面,还提供了一种用于进行消息路由的第一网络设备,包括:
[0011]第一装置,用于获取待路由的目标消息;
[0012]第二装置,用于将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。
[0013]根据本申请的又一方面,还提供了一种用于进行消息路由的第二网络设备,包括:
[0014]第四装置,用于接收由第一网络设备发送至第二网络设备的目标消息,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集;
[0015]第五装置,用于将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。
[0016]根据本申请的又一方面,还提供了用于进行消息路由的系统,其中,所述系统包括:
[0017]根据本申请一方面提供的一种用于进行消息路由的第一网络设备和本申请一方面提供的一种用于进行消息路由的第二网络设备。
[0018]与现有技术相比,本申请通过第一机房的第一网络设备将所述待路由的目标消息路由到目标消息的目标应用所对应的第二机房的第二网络设备,再由该第二网络设备将所述目标消息路由至第二机房所述子集中订阅所述目标消息的目标应用,从而高效地实现了跨机房的消息通信。进一步地,本申请通过目标消息所对应的消息相关信息,或是同时结合预定的机房路由相关信息确定订阅所述目标消息的目标应用所属的第二机房,从而能够预先对系统接收到的目标消息进行灵活的流量分割,为每一条目标消息匹配适宜机房的相应应用,在此,本申请通过设置有效的跨机房消息通信策略来缓解消息处理的压力,同时保障了所述目标消息的顺利传递。此外,本申请还可基于变更的路由规则、重路由指令等情况将缓存在所述第二网络设备中的目标消息发送至所述第一网络设备,进而将所述目标消息路由至对应机房的订阅应用,此时,在消息通信过程中通信路径的改变的情况下也可以快速的实现目标消息的传递,节约请求响应时间。
【附图说明】
[0019]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
[0020]图1示出根据本申请一个方面的一种用于进行消息路由的第一网络设备和第二网络设备的系统示意图;
[0021]图2示出根据本申请一个优选实施例的第二装置的设备示意图;
[0022]图3示出根据本申请另一个方面的一种用于进行消息路由的方法流程图;
[0023]图4示出根据本申请一个优选实施例的一种用于进行消息路由的方法的部分流程图。
[0024]附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0025]下面结合附图对本申请作进一步详细描述。
[0026]在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0027]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0028]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0029]图1示出根据本申请一个方面的一种用于进行消息路由的第一网络设备和第二网络设备的系统示意图。其中,所述系统包括所述第一网络设备I和第二网络设备2,所述第一网络设备I包括第一装置11和第二装置12,所述第二网络设备2包括第四装置13和第五装置14。
[0030]其中,第一装置11获取待路由的目标消息;第二装置12将所述目标消息路由至对应的第二网络设备2,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用;第四装置13接收由第一网络设备I发送至第二网络设备2的目标消息,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集;第五装置14将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。
[0031]具体地,第一装置11获取待路由的目标消息。所述第一网络设备I包括用于进行数据传递的通信设备,优选地,所述第一网络设备I可以包含一种中间件,特别的,可以包含一种消息中间件,用于进行应用和应用之间的数据信息的通信。基于所述第一网络设备I的信息输入与信息输出可以同步进行,优选地,还可以异步完成所述第一网络设备I的信息输入与信息输出操作,即先将输入信息存储在所述第一网络设备I中,对所述信息进行持久化处理,并根据持久化处理结果向信息发送方返回处理结果,进而基于一定的路由信息完成所述信息输出。所述第一网络设备I对应于所述第一机房,所述第一机房中的各个设备上部署着相应的若干个应用,优选地,所述第一机房中可以部署着所需要的全部相关应用,更进一步,当系统增加、删除、或修改一项应用时,也可以最先在第一机房对所述应用进行相应的增加、删除、修改等操作。在此,所述第一网络设备I的第一装置11用于获取待路由的目标消息,例如,所述待路由的目标消息可以是由所述第一网络设备I所对应的第一机房的某一应用获得的目标消息,如,目标消息a首先被第一机房的应用S获取,进而应用S作为发送方将所述目标消息a发送给所述第一装置11 ;又如,所述待路由的目标消息也可以由所述第二网络设备2发送过来,由所述第一装置11获取,在此,所述第二网络设备2包括用于进行数据传递的通信设备,优选地,所述第一网络设备2可以包含一种中间件,特别的,可以包含一种消息中间件,用于进行应用和应用之间的数据信息的通信。基于所述第二网络设备2的信息输入与信息输出可以同步进行,优选地,还可以异步完成所述第二网络设备2的信息输入与信息输出操作,即先将输入信息存储在所述第一网络设备2中,对所述信息进行持久化处理,并根据持久化处理结果向信息发送方返回处理结果,进而基于一定的路由信息完成所述信息输出。
[0032]接着,第二装置12将所述目标消息路由至对应的第二网络设备2,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。在此,所述目标消息最终会发送给订阅了该目标消息的目标应用,所述目标应用被各自部署在相应机房,为了数据分流、容灾备份等实际需要,一个系统中的同一目标应用可以存在多个,例如,多个相同目标应用可以部署在同一个机房,又如,多个机房中都分别部署同一种目标应用等。优选地,所述第一机房中可以部署着系统所需要的全部相关应用,相对应的,所述第二网络设备2所对应的第二机房中部署的应用是部署在所述第一机房的全部相关应用的一个子集,例如,所述第一机房部署了目标应用a、b、c、d,第二机房部署的目标应用可以是a,b。此时,若是目标消息对应的目标应用是a或b,则可以根据一定的策略在所述第一机房和所述第二机房中做出最优选择,以确定所述目标消息具体的传递路径;而对于目标应用是c或d的目标消息,则至少有所述第一机房存在目标应用,保证所述目标消息的通信可以正常完成。进而,当系统增加一项新应用时,可以最先在第一机房部署该新应用,通过所述第一机房的目标应用的全量部署确保在实际操作中每个所述目标消息至少能有对应一个应用来处理,从而保证整个系统的正常运作不受影响。更进一步,所述第一机房和所述第二机房均分别部署了系统所需要的全部相关应用,例如,所述第一机房和所述第二机房都分别部署了全部的目标应用a、b、c、d,此时,所述每个目标消息在确保能够得到处理的同时,还可以有更多选择空间。上述在所述第一机房和所述第二机房中做出最优选择的策略可以考虑多方面因素,例如,综合考虑流量分割、设备效率、机房容量等因素,可以从所述不同机房的同种类目标应用中做出最优选择。在此,所述第一网络设备I的第二装置12对于所述第一装置11所获取的待路由的目标消息进行路由,若所述待路由的目标消息对应的目标应用部署在所述第二网络设备2对应的第二机房中,则将所述目标消息从所述第一网络设备I路由到对应的所述第二网络设备2。进一步,通过所述第二网络设备2完成具体将目标信息路由到目标应用的操作。
[0033]接着,第四装置13接收由第一网络设备I发送至第二网络设备2的目标消息,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集。具体地,所述第二网络设备2所接收的由第一网络设备I发送过来的目标消息,可能是由其他机房获得的,但是在流量归属却划分到所述第二网络设备2对应的第二机房的目标消息,所以该目标消息会首先路由到第一机房对应的第一网络设备1,同时,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,若是该目标消息对应的目标应用被同样部署相应的第二机房,则再由所述第一网络设备I将所述目标消息路由到所述第二网络设备2。所述第二网络设备2所接收的由第一网络设备I发送过来的目标消息,还可能是其原本并不归属于所述第二网络设备2对应的第二机房,而是归属于其他机房,但是在消息传递过程中,因为某些原因,例如机房部署调整,导致所述目标消息的原本传递路径发生变化,如,改为将所述目标消息路由到所述第二机房中匹配对应的目标应用。
[0034]接着,对于所述第四装置201所获接受的来自第一网络设备I的目标消息,所述第二网络设备2中的第五装置14会依据其具体的路由信息,将所述目标消息转发至对应第二机房中部署的目标应用中。在此,优选地,通过所述第一网络设备I路由到所述第二机房中个的目标消息会先缓存在所述第二网络设备中,例如,对所述消息进行持久化处理,将所述处理的结果返回给相应的信息发送方,进而,基于所述目标消息和对应第二机房中目标应用之间的映射关系,如配置的路由信息将消息最终投递到对应的订阅应用所在的客户端。
[0035]在此,本领域技术人员应该能够理解,上述第一网络设备I/第二网络设备2包括用于进行数据传递的通信设备,优选地,所述第一网络设备I/第二网络设备2可以是一种中间件仅为举例,其他形式的第一网络设备I/第二网络设备2如可适用本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0036]在此,本申请通过第一机房的第一网络设备I将所述待路由的目标消息路由到目标消息的目标应用所对应的第二机房的第二网络设备2,再由该第二网络设备2将所述目标消息路由至第二机房所述子集中订阅所述目标消息的目标应用,从而高效地实现了跨机房的消息通信;更进一步,系统通过设置有效的跨机房消息通信策略来缓解消息处理的压力,同时保障了所述目标消息的顺利传递。
[0037]图2示出根据本申请一个优选实施例的第二装置的设备示意图。所述第二装置3包括第一单元21和第二单元22,其中第一单元21根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用;第二单元22将所述目标消息转发至所述第二机房所对应的第二网络设备2。
[0038]具体地,所述第一单元21根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用。基于系统中所述目标消息对应的目标应用可能存在多个,且部署在不同机房中,此时,为了缓解设备压力,提高消息传递的效率,优选地,可以对所述获取的待路由的目标消息进行划分,使其归属于不同的机房流量中,每个机房可以基于自己的应用部署、设备部署、设备利用率等情况各自对应系统中部分消息流量。进一步,归属某一个机房的目标消息,会尽可能将其路由到所归属机房中的订阅目标应用。在此,所述消息相关信息可以包括所述目标消息对应的订阅应用信息,如,目标应用A、B、C都是要订阅获取所述目标消息的目标应用;所述消息相关信息还可以包括该目标消息本身的某种属性信息,如,若所述目标消息来自电子交易系统,则所述目标消息可以区分为来自买方信息或是卖方信息。进一步,可以基于所述消息相关信息确定所述目标消息从属于哪个机房流量中,接着,所述第二单元22将所述目标消息转发至所确定的第二机房所对应的第二网络设备2中,进而,通过所述第二网络设备2,将所述目标消息发送给所述第二机房中订阅了所述目标消息的目标应用。
[0039]在此,本领域技术人员应该能够理解,所述消息相关信息包括但不限于上述举例,其他形式的消息相关信息若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0040]优选地,所述第一单元21根据所述目标消息所对应的消息相关信息,并结合预定的机房路由相关信息,确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用。
[0041 ] 具体地,所述目标消息对应的消息相关信息主要包括但不限于所述目标消息自身的一些属性、及其对应的订阅应用的相关信息;所述机房路由相关信息主要包括但不限于与目标消息对应的目标应用在各个机房中的部署信息、目标消息与对应机房的匹配对应关系、目标消息的具体路由信息等。此时,同时结合所述目标消息对应的消息相关信息和机房路由相关信息可以更有效地确定所述目标消息的对应的目标应用所从属的第二机房。例如,对于确定的目标消息Q,通过其对应的消息相关信息可以获得的信息包括所述目标消息Q是来自买方的消息,例如买方向目标系统发出新用户注册申请信息,且所述目标消息Q的订阅应用是目标应用E,同时,通过所述机房路由相关消息,可以确定哪些机房有可匹配的目标应用E,以及如何在众多机房中选择出所述目标消息匹配的目标机房,如,此时假设系统设置按照买方维度来划分所获取的待路由的目标消息,不同的买方区段对应不同的机房,如买方区段I对应第二机房1、买方区段2对应第二机房2,此时,所述第一网络设备I获得的目标消息Q基于所述消息相关信息按照买方维度划分属于买方区段2,则所述目标消息归属机房2,进而优选地,以所述目标消息Q对应的目标第二机房2中的目标应用E为最终的路由应用。在此,若是目标应用有多个,为了高效地进行消息路由,则会尽量在所述目标消息归属的机房中为所述目标消息匹配对应的各个应用,但是,也可以基于实际的限制或需要,灵活地将目标消息传递到不同机房的目标应用中。在此,所述机房路由相关信息可以是预先设定的,进一步,在实际应用中还可以基于机房部署的变化而进行实时调整,例如,当机房部署的设备部署发生变动,进而可能导致部署在各个服务器上的应用发生调整,则相应的所述目标信息的路由信息就可能发生相应变动。
[0042]更优选地,所述机房路由相关信息包括以下至少任一项:一是所述第二机房中应用部署信息;二是所述目标消息的消息源与所述第二机房的对应关系;三是在所述目标消息中被指定的关于所述第二机房的路由信息。
[0043]具体地,在此,所述第二机房中应用部署信息包括第二机房中部署的具体应用的类别、数量等信息,例如,因为所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用,所以所述第二机房中部署的应用类别可以是全量应用,也可以是部分应用,同一种应用在同一机房中也可以部署若干个。更进一步,所述第二机房中应用部署信息还可以包括由机房中部署的设备、应用等软硬件条件评估出来的各个应用的响应信息,不同机房的相同应用、或是相同机房的相同应用可以预设或是直接默认为一致的响应信息,优选地,也可以基于实际应用的精确性需求,有差异化设定,从而,能够为不同的应用场景下的消息路由提供更客观、更适宜的机房应用部署信息。
[0044]在此,所述机房路由相关信息还可以包括所述目标消息的消息源与所述第二机房的对应关系。可以基于所述目标消息的消息相关信息对所述目标消息进行归类,将基于一定划分标准的目标消息划归入对应的消息源中,进而为每一个消息源中的目标消息预置匹配路由的目标机房,即建立所述目标消息对应的消息源与所述具体第二机房之间的对应关系。例如,所述划分标准可以包括按照时间段划分所获得的目标消息,如Tl时间段获得目标消息对应于消息源1,T2时间段获得目标消息对应于消息源2……,进而可以为所述各个消息源匹配相应的第二机房,在此,可以随机为各个消息源匹配对应机房,也可以设置一定的参数权重进行适应性匹配,如若是Τ2时间段对应的消息源的消息流量相对较大,可以设置较大的权重系数,进而为其匹配设备应用容量较大、响应信息较优的第二机房作为对应归属机房。又如,所述划分标准还可以包括基于所述目标消息对应的模运算的结果进行划分,假设系统以买方维度来划分所获取的待路由的目标信息,对不同的目标消息进行取模运算,对于同一余数的目标消息对应同一个买方区段,即同一个消息源,进一步,为所述各个消息源匹配对应机房,同样的,所述匹配可以是随机的,也可以基于一定参数设置的差异性匹配。在此,本领域技术人员应该能够理解,所述将目标消息划归入对应的消息源中的划分标准仅为举例,其他形式的划分标准若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0045]在此,所述机房路由相关信息还可以包括在所述目标消息中被指定的关于所述第二机房的路由信息。由于消息传递时可能存在的拥塞,所以可以依据所述划分规则预先对目标消息进行流量分割,为所述目标消息匹配对应的目标机房,并将最优的路径策略以及具体的传输路径的相关数据等路由信息保存在相应的数据库中,通过所述路由信息,例如具体的路由表,可以指向所述目标应用所对应的具体网络地址,从而可以最终找到目标应用。
[0046]在此,本申请中所述机房路由相关信息可以包括上述各项中的任一项,同时也可以综合考虑上述各项中的若干项,并且,进一步,本领域技术人员应该能够理解,所述机房路由相关信息包括但不限于上述举例各项,其他形式的机房路由相关信息若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0047]优选地,所述第一网络设备I还包括第三装置(未示出),所述第三装置用于将所述目标消息发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。
[0048]具体地,对于所述第一网络设备I获取的待路由消息,若是按照所述划分标准进行划分,则所述目标消息将归属于相应的某个第二机房,为了兼顾对目标消息对应各个路由的集中处理,会尽可能在归属机房内部发送和消费所述目标消息。同时,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,若是所述第二机房中部署的应用只是所述第一机房中部署的全量应用中的部分应用时,则可能会出现所述目标消息对应的订阅应用并不在其归属的机房中的情况,此时,优选地,会将所述第一网络设备I的第一装置11获得的待路由的目标消息,发送至所述第一机房中所部署的、订阅所述目标消息的对应应用,因为所述第一机房中保留了所需要的全量目标应用,所以一定可以在所述第一机房中匹配到所需要的订阅应用。
[0049]此外,对于所述第一网络设备I所获取的待路由消息,还可能存在其所对应的归属机房即是所述第一网络设备I对应的第一机房本身,此时,又因为所述第一机房中包含了系统所需的全量目标应用,所以,优选地,所述目标消息可以直接在第一机房中进行传递,即所获取的目标消息将会发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。
[0050]在此,本领域技术人员应该能够理解,上述所列的第三装置适用的场景仅为举例,其他第三装置可以适用的场景若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0051]优选地,所述对应的第二网络设备2包括多个所述第二网络设备2,在每个所述第二网络设备2所对应的第二机房中部署有相同的应用。
[0052]具体地,为了更有效的实现消息的分流,可以部署多个第二机房,每个第二机房可以对应一个第二网络设备2,进而,所述对应的第二网络设备2可以包括多个所述第二网络设备2。同时,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。优选地,每个第二网络设备2所对应的第二机房中部署有相同的应用。在此,由于各个第二机房部署的应用相同,可以默认相同应用在不同机房中的响应效果相同,在为所述目标消息匹配对应目标机房时,则可以不用考虑各个机房中应用部署的差别,从而能够简化路由规则,节约路由设置耗时,进而有效地实现目标消息分流并进行相应路由。
[0053]优选地,所述第二网络设备2还包括第六装置(未示出),所述第六设备用于将待路由消息发送至所述第一网络设备1,其中,所述第二机房外的其他机房中部署有订阅所述待路由消息的应用。
[0054]具体地,所述第二网络设备2包括用于进行数据传递的通信设备,优选地,可以异步完成所述第二网络设备2的信息输入与信息输出操作。进而,对于所述第二网络设备2中存储的待路由消息,若是该待路由消息归属于所述第二机房的流量划分中,同时其对应的目标应用即部署在所述第二机房区域内,或是有其他类似情况,则所述目标消息就在所述第二机房内部传递;若是所述待路由消息对应的目标应用不归属于所述第二机房,而是归属于所述第一机房,或是虽然归属于所述第二机房,但是其对应的目标应用没有部署在所述第二机房中,或是还有其他类似情况,则所述待路由消息会先由所述第二网络设备2发送到所述第一网络设备1,再由第一网络设备I将所述目标消息传递到对应第一机房内部的目标应用;又若是所述待路由消息归属于所述第一机房和所述第二机房之外的其他机房,或是由于路由规则的改变使得路由的对应目标应用存在于所述其他机房,或是其他类似情况,则需要先将待路由消息发送至所述第一网络设备1,再由此进一步转发到所述相应目标机房中,并最终路由到所述其他机房中部署的订阅所述待路由消息的应用。
[0055]更优选地,所述待路由消息包括以下至少任一项:一是所述子集中应用所生成的消息;二是在所述第二网络设备2中存储的、待发送至对应订阅应用的消息;三是在所述第二网络设备2中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息;四是在所述第二网络设备2中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。
[0056]具体地,在此,所述待路由消息可以包括所述子集中应用所生成的消息,此时,可以对应于以下一种应用场景,即,由所述第二机房获取归属于所述第二机房消息流量范围的待路由消息,但是由于所述第二机房对应的所述子集中没有部署所述待路由消息对应的某个或若干个目标应用,所以需要将所述第二网络设备2中存储的这类带路由消息通过所述第二网络设备2发送给所述第一网络设备1,进而再路由到所述第一机房对应的目标应用中。
[0057]在此,所述待路由消息还可以包括在所述第二网络设备2中存储的、待发送至对应订阅应用的消息,此时,可以对应于以下一种应用场景,即,所述第二机房获取了归属于所述第二机房之外其他机房消息流量范围的待路由消息,此时所述待路由消息会通过所述第二网络设备2转发到所述第一网络设备I,并进一步路由到目标机房的对应目标应用中。
[0058]在此,所述待路由消息还可以包括在所述第二网络设备2中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息,此时,可以对应于以下一种应用场景,即,当订阅所述待路由消息的路由规则发生变化时,比如对于原本路由到所述第二机房的目标应用的所述待路由消息,由于所述目标应用处理对应路由消息的效率较低,造成本应该路由到该目标应用的消息过多的堆积在所述第二网络设备2中时,而得不到及时处理,此时,可以优选地,对全部或部分机房对应的的流量划分进行相应调整,进而原本堆积在所述第二网络设备2中的待路由消息可能由于新的路由规则的出现,其对应本次及后续的传输路径都发生了改变,此时,所述第二网络设备2收到所述待路由消息对应路由规则变更的通知,进而将其存储的所述待路由消息转发到所述第一网络设备1,并进行后续路由,最终到达对应的目标应用。例如,某个第二网络设备2中堆积了一条目标消息,原本该目标消息对应的是所述第二网络设备2对应的机房N中的目标应用M,此时,若是机房N中的目标应用M这一订阅者需要将消息重新路由到其他机房,则所述机房N中的目标应用M对应的设备端向所述机房N的第二网络设备2返回需要重新路由的code,则机房N的第二网络设备2会记录需要重新路由的目标应用,并根据新的路由规则计算得出新的目标应用,并将存储在机房N中第二网络设备2上所述目标消息投递到新的目标应用所在设备端;如果所述机房N中的目标应用M对应的设备端没有向所述机房N的第二网络设备2返回需要重新路由的code,则继续按照原先的路由规则进行消息路由。
[0059]在此,所述待路由消息还可以包括所述第二网络设备2中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。此时,可以对应于以下一种应用场景,即,虽然待路由消息缓存在所述第二网络设备2中,不能及时路由到所述第二机房中的目标应用U,但是整体考虑所述目标消息相关其他应用的路由情况,并不希望改变所述目标消息的路由规贝1J,而只是希望针对所述目标应用U的路由情况进行局部路由路径的调整,此时可以对于目标消息的本次路由发出重路由指令,确定其他机房的应用U作为重路由的目标应用,而所述目标应用对应的其他路由操作可以不受影响。
[0060]在此,本领域技术人员应该能够理解,上述待路由消息及各项的待路由消息的的应用场景仅为举例,其他形式的待路由消息及其他形式的待路由消息的应用场景若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0061]图3示出根据本申请另一个方面的一种用于进行消息路由的方法流程图。
[0062]其中,在步骤S31中,所述第一网络设备I获取待路由的目标消息;在步骤S32中,所述第一网络设备I将所述目标消息路由至对应的第二网络设备2,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用;在步骤S33中,所述第二网络设备将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。
[0063]具体地,在步骤S31中,所述第一网络设备I获取待路由的目标消息。所述第一网络设备I包括用于进行数据传递的通信设备,优选地,所述第一网络设备I可以包含一种中间件,特别的,可以包含一种消息中间件,用于进行应用和应用之间的数据信息的通信。基于所述第一网络设备I的信息输入与信息输出可以同步进行,优选地,还可以异步完成所述第一网络设备I的信息输入与信息输出操作,即先将输入信息存储在所述第一网络设备I中,对所述信息进行持久化处理,并根据持久化处理结果向信息发送方返回处理结果,进而基于一定的路由信息完成所述信息输出。所述第一网络设备I对应于所述第一机房,所述第一机房中的各个设备上部署着相应的若干个应用,优选地,所述第一机房中可以部署着所需要的全部相关应用,更进一步,当系统增加、删除、或修改一项应用时,也可以最先在第一机房对所述应用进行相应的增加、删除、修改等操作。在此,在步骤S31中,所述第一网络设备I用于获取待路由的目标消息,例如,所述待路由的目标消息可以是由所述第一网络设备I所对应的第一机房的某一应用获得的目标消息,如,目标消息a首先被第一机房的应用S获取,进而应用S作为发送方将所述目标消息a发送给所述第一网络设备I ;又如,所述待路由的目标消息也可以由所述第二网络设备2发送过来,由所述第一网络设备I获取,在此,所述第二网络设备2包括用于进行数据传递的通信设备,优选地,所述第一网络设备2可以包含一种中间件,特别的,可以包含一种消息中间件,用于进行应用和应用之间的数据信息的通信。基于所述第二网络设备2的信息输入与信息输出可以同步进行,优选地,还可以异步完成所述第二网络设备2的信息输入与信息输出操作,即先将输入信息存储在所述第一网络设备2中,对所述信息进行持久化处理,并根据持久化处理结果向信息发送方返回处理结果,进而基于一定的路由信息完成所述信息输出。
[0064]接着,在步骤S32中,所述第一网络设备I将所述目标消息路由至对应的第二网络设备2,其中,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。在此,所述目标消息最终会发送给订阅了该目标消息的目标应用,所述目标应用被各自部署在相应机房,为了数据分流、容灾备份等实际需要,一个系统中的同一目标应用可以存在多个,例如,多个相同目标应用可以部署在同一个机房,又如,多个机房中都分别部署同一种目标应用等。优选地,所述第一机房中可以部署着系统所需要的全部相关应用,相对应的,所述第二网络设备2所对应的第二机房中部署的应用是部署在所述第一机房的全部相关应用的一个子集,例如,所述第一机房部署了目标应用a、b、c、d,第二机房部署的目标应用可以是a,b。此时,若是目标消息对应的目标应用是a或b,则可以根据一定的策略在所述第一机房和所述第二机房中做出最优选择,以确定所述目标消息具体的传递路径;而对于目标应用是c或d的目标消息,则至少有所述第一机房存在目标应用,保证所述目标消息的通信可以正常完成。进而,当系统增加一项新应用时,可以最先在第一机房部署该新应用,通过所述第一机房的目标应用的全量部署确保在实际操作中每个所述目标消息至少能有对应一个应用来处理,从而保证整个系统的正常运作不受影响。更进一步,所述第一机房和所述第二机房均分别部署了系统所需要的全部相关应用,例如,所述第一机房和所述第二机房都分别部署了全部的目标应用a、b、c、d,此时,所述每个目标消息在确保能够得到处理的同时,还可以有更多选择空间。上述在所述第一机房和所述第二机房中做出最优选择的策略可以考虑多方面因素,例如,综合考虑流量分割、设备效率、机房容量等因素,可以从所述不同机房的同种类目标应用中做出最优选择。在此,在步骤S32中,所述第一网络设备I对所获取的待路由的目标消息进行路由,若所述待路由的目标消息对应的目标应用部署在所述第二网络设备2对应的第二机房中,则将所述目标消息从所述第一网络设备I路由到对应的所述第二网络设备2。进一步,通过所述第二网络设备2完成具体将目标信息路由到目标应用的操作。
[0065]在此,在本申请所述的系统中,与所述第一网络设备将所述目标消息路由至对应的第二网络设备2相对应,所述第二网络设备接收由第一网络设备I发送来目标消息。具体地,所述第二网络设备2所接收的由第一网络设备I发送过来的目标消息,可能是由其他机房获得的,但是在流量归属却划分到所述第二网络设备2对应的第二机房的目标消息,所以该目标消息会首先路由到第一机房对应的第一网络设备1,同时,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,若是该目标消息对应的目标应用被同样部署相应的第二机房,则再由所述第一网络设备I将所述目标消息路由到所述第二网络设备2。所述第二网络设备2所接收的由第一网络设备I发送过来的目标消息,还可能是其原本并不归属于所述第二网络设备2对应的第二机房,而是归属于其他机房,但是在消息传递过程中,因为某些原因,例如机房部署调整,导致所述目标消息的原本传递路径发生变化,如,改为将所述目标消息路由到所述第二机房中匹配对应的目标应用。
[0066]接着,在步骤S33中,所述第二网络设备2会依据其具体的路由信息,将所述目标消息转发至对应第二机房中部署的目标应用中。在此,优选地,通过所述第一网络设备I路由到所述第二机房中个的目标消息会先缓存在所述第二网络设备中,例如,对所述消息进行持久化处理,将所述处理的结果返回给相应的信息发送方,进而,基于所述目标消息和对应第二机房中目标应用之间的映射关系,如配置的路由信息将消息最终投递到对应的订阅应用所在的客户端。
[0067]在此,本领域技术人员应该能够理解,上述第一网络设备I/第二网络设备2包括用于进行数据传递的通信设备,优选地,所述第一网络设备I/第二网络设备2可以是一种中间件仅为举例,其他形式的第一网络设备I/第二网络设备2如可适用本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0068]在此,本申请通过第一机房的第一网络设备I将所述待路由的目标消息路由到目标消息的目标应用所对应的第二机房的第二网络设备2,再由该第二网络设备2将所述目标消息路由至第二机房所述子集中订阅所述目标消息的目标应用,从而高效地实现了跨机房的消息通信;更进一步,系统通过设置有效的跨机房消息通信策略来缓解消息处理的压力,同时保障了所述目标消息的顺利传递。
[0069]图4示出根据本申请一个优选实施例的一种用于进行消息路由的方法的部分流程图。
[0070]其中,在步骤S41中,所述第一网络设备I根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用;在步骤S42中,所述第一网络设备I将所述目标消息转发至所述第二机房所对应的第二网络设备2。
[0071]具体地,在步骤S41中,所述第一网络设备I根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房。此时,基于系统中所述目标消息对应的目标应用可能存在多个,且部署在不同机房中,为了缓解设备压力,提高消息传递的效率,优选地,可以对所述获取的待路由的目标消息进行划分,使其归属于不同的机房流量中,每个机房可以基于自己的应用部署、设备部署、设备利用率等情况各自对应系统中部分消息流量。进一步,归属某一个机房的目标消息,会尽可能将其路由到所归属机房中的订阅目标应用。在此,所述消息相关信息可以包括所述目标消息对应的订阅应用信息,如,目标应用A、B、C都是要订阅获取所述目标消息的目标应用;所述消息相关信息还可以包括该目标消息本身的某种属性信息,如,若所述目标消息来自电子交易系统,则所述目标消息可以区分为来自买方信息或是卖方信息。进一步,可以基于所述消息相关信息确定所述目标消息从属于哪个机房流量中,接着,在步骤S42中,所述第一网络设备I将所述目标消息转发至所确定的第二机房所对应的第二网络设备2中,进而,通过所述第二网络设备2,将所述目标消息发送给所述第二机房中订阅了所述目标消息的目标应用。
[0072]在此,本领域技术人员应该能够理解,所述消息相关信息包括但不限于上述举例,其他形式的消息相关信息若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0073]优选地,在步骤S41中,所述第一网络设备I根据所述目标消息所对应的消息相关信息,并结合预定的机房路由相关信息,确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用。
[0074]具体地,所述目标消息对应的消息相关信息主要包括但不限于所述目标消息自身的一些属性、及其对应的订阅应用的相关信息;所述机房路由相关信息主要包括但不限于与目标消息对应的目标应用在各个机房中的部署信息、目标消息与对应机房的匹配对应关系、目标消息的具体路由信息等。此时,同时结合所述目标消息对应的消息相关信息和机房路由相关信息可以更有效地确定所述目标消息的对应的目标应用所从属的第二机房。例如,对于确定的目标消息Q,通过其对应的消息相关信息可以获得的信息包括所述目标消息Q是来自买方的消息,例如买方向目标系统发出新用户注册申请信息,且所述目标消息Q的订阅应用是目标应用E,同时,通过所述机房路由相关消息,可以确定哪些机房有可匹配的目标应用E,以及如何在众多机房中选择出所述目标消息匹配的目标机房,如,此时假设系统设置按照买方维度来划分所获取的待路由的目标消息,不同的买方区段对应不同的机房,如买方区段I对应第二机房1、买方区段2对应第二机房2,此时,所述第一网络设备I获得的目标消息Q基于所述消息相关信息按照买方维度划分属于买方区段2,则所述目标消息归属机房2,进而优选地,以所述目标消息Q对应的目标第二机房2中的目标应用E为最终的路由应用。在此,若是目标应用有多个,为了高效地进行消息路由,则会尽量在所述目标消息归属的机房中为所述目标消息匹配对应的各个应用,但是,也可以基于实际的限制或需要,灵活地将目标消息传递到不同机房的目标应用中。在此,所述机房路由相关信息可以是预先设定的,进一步,在实际应用中还可以基于机房部署的变化而进行实时调整,例如,当机房部署的设备部署发生变动,进而可能导致部署在各个服务器上的应用发生调整,则相应的所述目标信息的路由信息就可能发生相应变动。
[0075]更优选地,所述机房路由相关信息包括以下至少任一项:一是所述第二机房中应用部署信息;二是所述目标消息的消息源与所述第二机房的对应关系;三是在所述目标消息中被指定的关于所述第二机房的路由信息。
[0076]具体地,在此,所述第二机房中应用部署信息包括第二机房中部署的具体应用的类别、数量等信息,例如,因为所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用,所以所述第二机房中部署的应用类别可以是全量应用,也可以是部分应用,同一种应用在同一机房中也可以部署若干个。更进一步,所述第二机房中应用部署信息还可以包括由机房中部署的设备、应用等软硬件条件评估出来的各个应用的响应信息,不同机房的相同应用、或是相同机房的相同应用可以预设或是直接默认为一致的响应信息,优选地,也可以基于实际应用的精确性需求,有差异化设定,从而,能够为不同的应用场景下的消息路由提供更客观、更适宜的机房应用部署信息。
[0077]在此,所述机房路由相关信息还可以包括所述目标消息的消息源与所述第二机房的对应关系。可以基于所述目标消息的消息相关信息对所述目标消息进行归类,将基于一定划分标准的目标消息划归入对应的消息源中,进而为每一个消息源中的目标消息预置匹配路由的目标机房,即建立所述目标消息对应的消息源与所述具体第二机房之间的对应关系。例如,所述划分标准可以包括按照时间段划分所获得的目标消息,如Tl时间段获得目标消息对应于消息源1,T2时间段获得目标消息对应于消息源2……,进而可以为所述各个消息源匹配相应的第二机房,在此,可以随机为各个消息源匹配对应机房,也可以设置一定的参数权重进行适应性匹配,如若是Τ2时间段对应的消息源的消息流量相对较大,可以设置较大的权重系数,进而为其匹配设备应用容量较大、响应信息较优的第二机房作为对应归属机房。又如,所述划分标准还可以包括基于所述目标消息对应的模运算的结果进行划分,假设系统以买方维度来划分所获取的待路由的目标信息,对不同的目标消息进行取模运算,对于同一余数的目标消息对应同一个买方区段,即同一个消息源,进一步,为所述各个消息源匹配对应机房,同样的,所述匹配可以是随机的,也可以基于一定参数设置的差异性匹配。在此,本领域技术人员应该能够理解,所述将目标消息划归入对应的消息源中的划分标准仅为举例,其他形式的划分标准若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0078]在此,所述机房路由相关信息还可以包括在所述目标消息中被指定的关于所述第二机房的路由信息。由于消息传递时可能存在的拥塞,所以可以依据所述划分规则预先对目标消息进行流量分割,为所述目标消息匹配对应的目标机房,并将最优的路径策略以及具体的传输路径的相关数据等路由信息保存在相应的数据库中,通过所述路由信息,例如具体的路由表,可以指向所述目标应用所对应的具体网络地址,从而可以最终找到目标应用。
[0079]在此,本申请中所述机房路由相关信息可以包括上述各项中的任一项,同时也可以综合考虑上述各项中的若干项,并且,进一步,本领域技术人员应该能够理解,所述机房路由相关信息包括但不限于上述举例各项,其他形式的机房路由相关信息若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0080]优选地,所述用于进行消息路由的方法还包括步骤:所述第一网络设备I将所述目标消息发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。
[0081]具体地,对于所述第一网络设备I获取的待路由消息,若是按照所述划分标准进行划分,则所述目标消息将归属于相应的某个第二机房,为了兼顾对目标消息对应各个路由的集中处理,会尽可能在归属机房内部发送和消费所述目标消息。同时,所述第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,若是所述第二机房中部署的应用只是所述第一机房中部署的全量应用中的部分应用时,则可能会出现所述目标消息对应的订阅应用并不在其归属的机房中的情况,此时,优选地,会将所述第一网络设备I的第一装置11获得的待路由的目标消息,发送至所述第一机房中所部署的、订阅所述目标消息的对应应用,因为所述第一机房中保留了所需要的全量目标应用,所以一定可以在所述第一机房中匹配到所需要的订阅应用。
[0082]此外,对于所述第一网络设备I所获取的待路由消息,还可能存在其所对应的归属机房即是所述第一网络设备I对应的第一机房本身,此时,又因为所述第一机房中包含了系统所需的全量目标应用,所以,优选地,所述目标消息可以直接在第一机房中进行传递,即所获取的目标消息将会发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。
[0083]在此,本领域技术人员应该能够理解,上述所列的第三装置适用的场景仅为举例,其他第三装置可以适用的场景若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0084]优选地,所述对应的第二网络设备2包括多个所述第二网络设备2,在每个所述第二网络设备2所对应的第二机房中部署有相同的应用。
[0085]具体地,为了更有效的实现消息的分流,可以部署多个第二机房,每个第二机房可以对应一个第二网络设备2,进而,所述对应的第二网络设备2可以包括多个所述第二网络设备2。同时,所述第二网络设备2所对应的第二机房中部署有在所述第一网络设备I所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。优选地,每个第二网络设备2所对应的第二机房中部署有相同的应用。在此,由于各个第二机房部署的应用相同,可以默认相同应用在不同机房中的响应效果相同,在为所述目标消息匹配对应目标机房时,则可以不用考虑各个机房中应用部署的差别,从而能够简化路由规则,节约路由设置耗时,进而有效地实现目标消息分流并进行相应路由。
[0086]优选地,所述用于进行消息路由的方法还包括步骤:所述第二网络设备2将待路由消息发送至所述第一网络设备1,其中,所述第二机房外的其他机房中部署有订阅所述待路由消息的应用。
[0087]具体地,所述第二网络设备2包括用于进行数据传递的通信设备,优选地,可以异步完成所述第二网络设备2的信息输入与信息输出操作。进而,对于所述第二网络设备2中存储的待路由消息,若是该待路由消息归属于所述第二机房的流量划分中,同时其对应的目标应用即部署在所述第二机房区域内,或是有其他类似情况,则所述目标消息就在所述第二机房内部传递;若是所述待路由消息对应的目标应用不归属于所述第二机房,而是归属于所述第一机房,或是虽然归属于所述第二机房,但是其对应的目标应用没有部署在所述第二机房中,或是还有其他类似情况,则所述待路由消息会先由所述第二网络设备2发送到所述第一网络设备1,再由第一网络设备I将所述目标消息传递到对应第一机房内部的目标应用;又若是所述待路由消息归属于所述第一机房和所述第二机房之外的其他机房,或是由于路由规则的改变使得路由的对应目标应用存在于所述其他机房,或是其他类似情况,则需要先将待路由消息发送至所述第一网络设备1,再由此进一步转发到所述相应目标机房中,并最终路由到所述其他机房中部署的订阅所述待路由消息的应用。
[0088]更优选地,所述待路由消息包括以下至少任一项:一是所述子集中应用所生成的消息;二是在所述第二网络设备2中存储的、待发送至对应订阅应用的消息;三是在所述第二网络设备2中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息;四是在所述第二网络设备2中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。
[0089]具体地,在此,所述待路由消息可以包括所述子集中应用所生成的消息,此时,可以对应于以下一种应用场景,即,由所述第二机房获取归属于所述第二机房消息流量范围的待路由消息,但是由于所述第二机房对应的所述子集中没有部署所述待路由消息对应的某个或若干个目标应用,所以需要将所述第二网络设备2中存储的这类带路由消息通过所述第二网络设备2发送给所述第一网络设备1,进而再路由到所述第一机房对应的目标应用中。
[0090]在此,所述待路由消息还可以包括在所述第二网络设备2中存储的、待发送至对应订阅应用的消息,此时,可以对应于以下一种应用场景,即,所述第二机房获取了归属于所述第二机房之外其他机房消息流量范围的待路由消息,此时所述待路由消息会通过所述第二网络设备2转发到所述第一网络设备I,并进一步路由到目标机房的对应目标应用中。
[0091]在此,所述待路由消息还可以包括在所述第二网络设备2中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息,此时,可以对应于以下一种应用场景,即,当订阅所述待路由消息的路由规则发生变化时,比如对于原本路由到所述第二机房的目标应用的所述待路由消息,由于所述目标应用处理对应路由消息的效率较低,造成本应该路由到该目标应用的消息过多的堆积在所述第二网络设备2中时,而得不到及时处理,此时,可以优选地,对全部或部分机房对应的的流量划分进行相应调整,进而原本堆积在所述第二网络设备2中的待路由消息可能由于新的路由规则的出现,其对应本次及后续的传输路径都发生了改变,此时,所述第二网络设备2收到所述待路由消息对应路由规则变更的通知,进而将其存储的所述待路由消息转发到所述第一网络设备1,并进行后续路由,最终到达对应的目标应用。例如,某个第二网络设备2中堆积了一条目标消息,原本该目标消息对应的是所述第二网络设备2对应的机房N中的目标应用M,此时,若是机房N中的目标应用M这一订阅者需要将消息重新路由到其他机房,则所述机房N中的目标应用M对应的设备端向所述机房N的第二网络设备2返回需要重新路由的code,则机房N的第二网络设备2会记录需要重新路由的目标应用,并根据新的路由规则计算得出新的目标应用,并将存储在机房N中第二网络设备2上所述目标消息投递到新的目标应用所在设备端;如果所述机房N中的目标应用M对应的设备端没有向所述机房N的第二网络设备2返回需要重新路由的code,则继续按照原先的路由规则进行消息路由。
[0092]在此,所述待路由消息还可以包括所述第二网络设备2中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。此时,可以对应于以下一种应用场景,即,虽然待路由消息缓存在所述第二网络设备2中,不能及时路由到所述第二机房中的目标应用U,但是整体考虑所述目标消息相关其他应用的路由情况,并不希望改变所述目标消息的路由规贝1J,而只是希望针对所述目标应用U的路由情况进行局部路由路径的调整,此时可以对于目标消息的本次路由发出重路由指令,确定其他机房的应用U作为重路由的目标应用,而所述目标应用对应的其他路由操作可以不受影响。
[0093]在此,本领域技术人员应该能够理解,上述待路由消息及各项的待路由消息的的应用场景仅为举例,其他形式的待路由消息及其他形式的待路由消息的应用场景若是能够用于本申请,也应包含在本申请的保护范围以内,并在此以引用方式包含于此。
[0094]对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括” 一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
【主权项】
1.一种在第一网络设备端进行消息路由的方法,其中,所述方法包括: 获取待路由的目标消息; 将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。2.根据权利要求1所述的方法,其中,所述将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用包括: 根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用; 将所述目标消息转发至所述第二机房所对应的第二网络设备。3.根据权利要求2所述的方法,其中,所述根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用包括: 根据所述目标消息所对应的消息相关信息,并结合预定的机房路由相关信息,确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用。4.根据权利要求3所述的方法,其中,所述机房路由相关信息包括以下至少任一项: 所述第二机房中应用部署信息; 所述目标消息的消息源与所述第二机房的对应关系; 在所述目标消息中被指定的关于所述第二机房的路由信息。5.根据权利要求1至4中任一项所述的方法,其中,所述方法还包括: 将所述目标消息发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。6.根据权利要求1至5中任一项所述的方法,其中,所述对应的第二网络设备包括多个所述第二网络设备,在每个所述第二网络设备所对应的第二机房中部署有相同的应用。7.—种在第二网络设备端进行消息路由的方法,其中,所述方法包括: 接收由第一网络设备发送至第二网络设备的目标消息,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集;将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。8.根据权利要求7所述的方法,其中,所述方法还包括: 将待路由消息发送至所述第一网络设备,其中,所述第二机房外的其他机房中部署有订阅所述待路由消息的应用。9.根据权利要求8所述的方法,其中,所述待路由消息包括以下至少任一项: 所述子集中应用所生成的消息; 在所述第二网络设备中存储的、待发送至对应订阅应用的消息; 在所述第二网络设备中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息; 在所述第二网络设备中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。10.一种用于进行消息路由的第一网络设备,其中,所述第一网络设备包括: 第一装置,用于获取待路由的目标消息; 第二装置,用于将所述目标消息路由至对应的第二网络设备,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括订阅所述目标消息的目标应用。11.根据权利要求10所述的第一网络设备,其中,所述第二装置包括: 第一单元,用于根据所述目标消息所对应的消息相关信息确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用; 第二单元,用于将所述目标消息转发至所述第二机房所对应的第二网络设备。12.根据权利要求11所述的第一网络设备,其中,所述第一单元用于: 根据所述目标消息所对应的消息相关信息,并结合预定的机房路由相关信息,确定订阅所述目标消息的目标应用所属的第二机房,其中,所述第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集,所述子集包括所述目标应用。13.根据权利要求12所述的第一网络设备,其中,所述机房路由相关信息包括以下至少任一项: 所述第二机房中应用部署信息; 所述目标消息的消息源与所述第二机房的对应关系; 在所述目标消息中被指定的关于所述第二机房的路由信息。14.根据权利要求10至13中任一项所述的第一网络设备,其中,所述第一网络设备还包括: 第三装置,用于将所述目标消息发送至所述第一机房中所部署的、订阅所述目标消息的对应应用。15.根据权利要求10至14中任一项所述的第一网络设备,其中,所述对应的第二网络设备包括多个所述第二网络设备,在每个所述第二网络设备所对应的第二机房中部署有相同的应用。16.一种用于进行消息路由的第二网络设备,其中,所述第二网络设备包括: 第四装置,用于接收由第一网络设备发送至第二网络设备的目标消息,其中,所述第二网络设备所对应的第二机房中部署有在所述第一网络设备所对应的第一机房中所部署应用的子集; 第五装置,用于将所述目标消息转发至所述子集中订阅所述目标消息的目标应用。17.根据权利要求16所述的第二网络设备,其中,所述第二网络设备还包括: 第六装置,用于将待路由消息发送至所述第一网络设备,其中,所述第二机房外的其他机房中部署有订阅所述待路由消息的应用。18.根据权利要求17所述的第二网络设备,其中,所述待路由消息包括以下至少任一项: 所述子集中应用所生成的消息; 在所述第二网络设备中存储的、待发送至对应订阅应用的消息; 在所述第二网络设备中存储的、基于更新后的路由规则待发送至其他机房中对应订阅应用的消息; 在所述第二网络设备中存储的、基于重路由指令待发送至其他机房中订阅应用的消息。
【文档编号】H04L12/721GK105847170SQ201510020832
【公开日】2016年8月10日
【申请日】2015年1月15日
【发明人】杨文婷
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1