消息处理方法、装置、终端设备及存储介质转让专利

申请号 : CN202011627639.4

文献号 : CN112788551B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 淡欣张怀庆

申请人 : 平安证券股份有限公司

摘要 :

本申请适用于基架运维技术领域,提供了一种消息处理方法、终端设备及存储介质,上述消息处理方法包括:接收目标消息处理请求,包括目标消息订阅请求和/或目标消息发布请求,目标消息处理请求包含目标消息标识;在预存的消息标识与消息属性的对应关系中,确定与目标消息标识对应的消息属性;消息属性包含属主信息、消息名称和消息路由信息,属主信息对应至少一个消息中间件;根据属主信息确定至少一个消息中间件中负载满足预设要求的目标消息中间件;基于目标消息中的消息名称和消息路由信息,通过目标消息中间件发起消息的订阅和/或发布,使得发布端和订阅端基于较佳的消息中间件实现消息的订阅/发布,保证消息的订阅和/或发布顺利进行。

权利要求 :

1.一种消息处理方法,其特征在于,包括:

接收输入的目标消息处理请求,所述目标消息处理请求包含目标消息标识,所述目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求;

在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性;其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件;

根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件;

基于所述消息名称和所述消息路由信息,通过所述目标消息中间件发起消息的订阅和/或发布。

2.根据权利要求1所述的消息处理方法,其特征在于,所述根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件,包括:根据所述属主信息确定所述至少一个消息中间件中各个消息中间件的地址标识,并基于所述地址标识与各个所述消息中间件建立通信连接;

计算各个所述消息中间件的负载;

将各个所述消息中间件中负载满足预设要求的消息中间件,确定为所述目标消息中间件。

3.根据权利要求1所述的消息处理方法,其特征在于,所述方法还包括:在检测到所述目标消息中间件存在异常时,基于所述目标消息的属主信息确定备用消息中间件;

基于所述消息名称和所述消息路由信息,通过所述备用消息中间件继续进行消息的订阅和/或发布。

4.根据权利要求3所述的消息处理方法,其特征在于,所述基于所述目标消息的属主信息确定备用消息中间件,包括:根据所述属主信息确定可选消息中间件的地址标识,并基于所述地址标识与各个所述可选消息中间件建立通信连接;其中,所述可选消息中间件为所述至少一个消息中间件中除去所述目标消息中间件之外的消息中间件;

计算各个所述可选消息中间件的负载;

将各个所述可选消息中间件中负载值最低的可选消息中间件,确定为所述备用消息中间件。

5.根据权利要求4所述的消息处理方法,其特征在于,所述方法还包括:在未能确定出所述备用消息中间件的情况下,基于所述消息名称和所述消息路由信息,通过第一预设消息中间件继续进行消息的订阅和/或发布。

6.根据权利要求1所述的消息处理方法,其特征在于,所述方法还包括:在检测到订阅和/或发布消息所需流量大于阈值时,通过第二预设消息中间件继续进行消息的订阅和/或发布;

其中,所述第二预设消息中间件的数据传输通道与所述至少一个消息中间件中的各个所述消息中间件的数据传输通道相独立。

7.根据权利要求1所述的消息处理方法,其特征在于,所述方法还包括:接收输入的消息属性文件,所述消息属性文件中包含多对一一对应的消息标识和消息属性;

基于所述多对一一对应的消息标识和消息属性,建立消息标识与消息属性的对应关系。

8.一种消息处理装置,其特征在于,包括:

接收模块,用于接收输入的目标消息处理请求,所述目标消息处理请求包含目标消息标识,所述目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求;

消息属性确定模块,用于在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性;其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件;

消息中间件确定模块,用于根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件;

消息处理模块,用于基于所述消息名称和所述消息路由信息,通过所述目标消息中间件发起消息的订阅和/或发布。

9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。

说明书 :

消息处理方法、装置、终端设备及存储介质

技术领域

[0001] 本申请涉及基架运维技术领域,尤其涉及一种消息处理方法、装置、终端设备及存储介质。

背景技术

[0002] 目前基于EDA(Event Driven Application,事件驱动APP)的架构不少,但大多应用在核心系统外围,通常做一些外围辅助类支持。传统EDA设计相对比较聚焦发布端和订阅端的设计和实现,注重上述两端的高可用和负载均衡实现。而对于消息的发布和订阅都是基于预先指定的消息中间件实现的,即预先指定一个消息中间件用于消息的发布和订阅,而预先指定的消息中间件通常是一成不变的,存在不能够满足消息的订阅和/或发布的需求的情况,因此可能导致发布端和订阅端无法实现消息的订阅和/或发布。

发明内容

[0003] 有鉴于此,本申请实施例提供了一种消息处理方法、装置、终端设备及计算机可读存储介质,以解决现有技术中预先指定的消息中间件存在不能够满足消息的订阅和发布的需求而导致的发布端和订阅端无法实现消息的订阅和发布的问题。
[0004] 本申请实施例的第一方面提供了一种消息处理方法,包括:
[0005] 接收输入的目标消息处理请求,所述目标消息订阅请求包含目标消息标识,所述目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求;
[0006] 在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性;其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件;
[0007] 根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件;
[0008] 基于所述消息名称和所述消息路由信息,通过所述目标消息中间件发起消息的订阅和/或发布。
[0009] 在第一方面的一种可实现方式中,所述根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件,包括:
[0010] 根据所述属主信息确定所述至少一个消息中间件中各个消息中间件的地址标识,并基于所述地址标识与各个所述消息中间件建立通信连接;
[0011] 计算各个所述消息中间件的负载;
[0012] 将各个所述消息中间件中负载值满足预设要求的消息中间件,确定为所述目标消息中间件。
[0013] 在第一方面的一种可实现方式中,所述方法还包括:
[0014] 在检测到所述目标消息中间件存在异常时,基于所述目标消息的属主信息确定备用消息中间件;
[0015] 连接所述备用消息中间件,基于所述消息名称和所述消息路由信息继续进行消息的订阅和/或发布。
[0016] 在第一方面的一种可实现方式中,所述基于所述目标消息的属主信息确定备用消息中间件,包括:
[0017] 根据所述属主信息确定可选消息中间件的地址标识,并基于所述地址标识与各个所述可选消息中间件建立通信连接;其中,所述可选消息中间件为所述至少一个消息中间件中除去所述目标消息中间件之外的消息中间件;
[0018] 计算各个所述可选消息中间件的负载;
[0019] 将各个所述可选消息中间件中负载值最低的可选消息中间件,确定为所述备用消息中间件。
[0020] 在第一方面的一种可实现方式中,所述方法还包括:
[0021] 在未能确定出所述备用消息中间件的情况下,并基于所述消息名称和所述消息路由信息,通过第一预设消息中间件继续进行消息的订阅和/或发布。
[0022] 在第一方面的一种可实现方式中,所述方法还包括:
[0023] 在检测到订阅和/或发布所述目标消息所需流量大于阈值时,通过第二预设消息中间件继续进行消息的订阅和/或发布;
[0024] 其中,所述第二预设消息中间件的数据传输通道与所述至少一个消息中间件中的各个所述消息中间件的数据传输通道相独立。
[0025] 在第一方面的一种可实现方式中,所述方法还包括:
[0026] 接收输入的消息属性文件,所述消息属性文件中包含多对一一对应的消息标识和消息属性;
[0027] 基于所述多对一一对应的消息标识和消息属性,建立消息标识与消息属性的对应关系。
[0028] 本申请实施例的第二方面提供了一种消息处理装置,包括:
[0029] 接收模块,用于接收输入的目标消息订阅请求,所述目标消息订阅请求包含目标消息标识;
[0030] 消息属性确定模块,用于在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性;其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件;
[0031] 消息中间件确定模块,用于根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件;
[0032] 消息处理模块,用于基于所述消息名称和所述消息路由信息通过所述目标消息中间件发起消息的订阅和/或发布。
[0033] 本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在终端设备上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的消息处理方法的各步骤。
[0034] 本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的消息处理方法的各步骤。
[0035] 本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面提供的消息处理方法的各步骤。
[0036] 实施本申请实施例提供的一种消息处理方法、装置、终端设备及计算机可读存储介质具有以下有益效果:
[0037] 本申请实施例提供的一种消息处理方法,可以根据目标消息处理请求中的目标消息标识以及预存的对应关系,确定与目标消息标识对应的消息属性,该目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求,而该消息属性包含属主信息,该属主信息可以对应至少一个消息中间件,因此可以从属主信息对应的至少一个消息中间件中确定负载满足预设要求的目标消息中间件,基于消息名称和消息路由信息,通过该目标消息中间件发起消息的订阅和/或发布,由于上述目标消息中间件为负载满足预设要求的消息中间件,例如负载较低或负载符合某些信息订阅/发布的要求,因此能够使得发布端和订阅端基于较佳的消息中间件实现消息的订阅和/或发布,保证消息的订阅和/或发布的顺利完成。

附图说明

[0038] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0039] 图1是本申请实施例提供的消息处理方法适用的系统示意图;
[0040] 图2是本申请实施例提供的一种消息处理方法的实现流程图;
[0041] 图3是本申请另一实施例提供的一种消息处理方法的实现流程图;
[0042] 图4是本申请再一实施例提供的一种消息处理方法的实现流程图;
[0043] 图5是本申请再一实施例提供的一种消息处理方法的实现流程图;
[0044] 图6是本申请再一实施例提供的一种消息处理方法的实现流程图;
[0045] 图7是本申请再一实施例提供的一种消息处理方法的实现流程图;
[0046] 图8是本申请实施例提供的一种消息处理装置的结构框图;
[0047] 图9是本申请实施例提供的一种终端设备的结构框图。

具体实施方式

[0048] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0049] 目前基于EDA的架构不少,但大多应用在核心系统外围,通常做一些外围辅助类支持。传统EDA设计相对比较聚焦发布端和订阅端的设计和实现,注重上述两端的高可用和负载均衡实现。而对于消息的发布和订阅大多基于预定义,即预先设定消息发布至哪一个消息中间件,以及订阅端与消息中间件的对应关系,而预定义的消息中间件存在不能够满足消息的订阅和发布的需求的情况,因此可能导致发布端和订阅端无法实现消息的订阅/发布。
[0050] 基于上述问题,本申请提供一种消息处理方法、装置、终端设备及存储介质,该方法根据接收到的目标消息处理请求中的目标消息标识以及预存的对应关系,确定与目标消息标识对应的消息属性,目标消息处理请求包含目标消息订阅请求和/或目标消息发布请求,而该消息属性包含属主信息,该属主信息可以对应至少一个消息中间件,因此可以从属主信息对应的至少一个消息中间件中确定负载满足预设要求的目标消息中间件,连接该目标消息中间件并基于对应的消息名称和消息路由信息发起消息的订阅和/或发布,由于上述目标消息中间件为负载满足预设要求的消息中间件,例如负载较低或负载符合某些信息订阅/发布的要求,因此能够使得发布端和订阅端基于较佳的消息中间件实现消息的订阅和/或发布,保证消息的订阅和/或发布的顺利完成。
[0051] 另外,对于预定义的消息中间件可能存在异常的情况,上述消息处理方法还能够在检测到目标消息中间件存在故障时,基于目标消息的属主信息确定备用消息中间件,连接备用消息中间件并基于备用消息中的消息名称和消息路由信息继续进行消息的订阅和/或发布,从而能够在消息中间件出现异常的情况下,采用备用消息中间件继续进行消息的订阅和/或发布。
[0052] 举例说明,本申请实施例可以应用到如图1所示的系统中。在该系统中,消息订阅端10和消息发布端20通过消息处理设备30进行消息的订阅和/或发布。消息订阅端10接收用户输入的目标消息订阅请求,并发送给消息处理设备30;消息处理设备30提取目标消息订阅请求中的目标消息标识,在预存的消息标识与消息属性的对应关系中,确定与目标消息标识对应的消息属性,根据属主信息确定负载满足预设要求的目标消息中间件,并使得消息订阅端10和消息发布端20连接目标消息中间件,基于消息属性中的消息名称和消息路由信息发起消息的订阅/发布。
[0053] 以下结合图1对本申请的消息处理方法进行详细说明。
[0054] 请参阅图2,图2示出了本申请实施例提供的一种消息处理方法的实现流程图。
[0055] 步骤S101,接收输入的目标消息处理请求,所述目标消息订阅请求包含目标消息标识,目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求。
[0056] 其中,目标消息标识用于表征用户通过该目标消息订阅请求所要订阅/发布的目标消息,例如,该消息标识可以为消息名称等。
[0057] 示例性的,可以将携带有上述目标消息的属性的配置文件(例如XML文件、Property文件等)输入到消息处理设备,由消息处理设备从配置文件中提取出目标消息的属性。
[0058] 示例性的,可以由用户在消息处理设备的可视化界面中输入上述目标消息的属性。
[0059] 步骤S102,在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性。
[0060] 其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件。
[0061] 示例性的,消息的属主信息表示该消息所属的功能模块,一个消息可以所属一个功能模块或多个功能模块,而每个功能模块对应一个消息中间件,其中每个消息中间件具有一个地址标识(例如IP)和端口。
[0062] 本实施例中,上述消息标识与消息属性的对应关系可以包含多对一一对应的消息标识和消息属性,将该目标消息标识与上述对应关系中的各个消息标识进行匹配,若存在一个消息标识与该目标消息标识匹配成功,则将该消息标识对应的消息属性,作为该目标消息标识的消息属性。
[0063] 在一种应用场景中,参见表1,消息标识和消息属性的对应关系可以包含:消息标识1和消息属性1之间的对应关系,消息标识2和消息属性2之间的对应关系,……,消息标识n和消息属性n之间的对应关系。在步骤S102中得到目标消息标识后,将该目标消息标识与表1中的各个消息标识进行匹配,确定与目标消息标识相同的消息标识i(1≤i≤n),将该消息标识i对应的消息属性i作为目标消息标识对应的消息属性。
[0064] 表1消息标识和消息属性的对应关系
[0065]
[0066]
[0067] 步骤S103,根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件。
[0068] 其中,所述目标消息中间件可以用于为消息发布端和消息订阅端之间提供数据传输通道,通过该目标消息中间件消息订阅端可以将消息订阅请求发送给消息发布端,消息发布端基于该消息订阅请求发布相应消息,该消息通过该目标消息中间件传输给消息订阅端。
[0069] 需要说明的是,在消息订阅阶段和消息发布阶段,可以对应不同的目标消息中间件。示例性的,在消息订阅阶段,可以采用第一目标消息中间件,此时消息订阅端和消息发布端通过第一目标消息中间件传输数据;而在消息发布阶段,可以采用第二目标消息中间件,例如第一目标消息中间件出现异常,此时消息订阅端和消息发布端通过第二目标消息中间件传输数据。
[0070] 本步骤中,负载满足预设要求可以为:负载小于阈值,或者负载符合某些信息订阅/发布的要求,例如负载位于预设范围等,本申请实施例对此不与限定。
[0071] 参见图3,一些实施例中,步骤S103可以包括以下步骤:
[0072] 步骤S1031,根据所述属主信息确定所述至少一个消息中间件中各个消息中间件的地址标识,并基于所述地址标识与各个所述消息中间件建立通信连接。
[0073] 步骤S1032,计算各个所述消息中间件的负载。
[0074] 步骤S1033,将各个所述消息中间件中负载满足预设要求的消息中间件,确定为所述目标消息中间件。
[0075] 其中,每个消息中间件设置有一个地址标识(例如地址IP)和端口,因此可以确定属主信息对应的各个消息中间件的地址标志。
[0076] 示例性的,对于m个消息中间件,m为大于或等于2的整数,消息中间件1对应的地址标识为IP1,消息中间件2对应的地址标识为IP2,……,消息中间件m对应的地址标识为IPm。按照上面的地址IP1至IPm分别与m个消息中间件建立通信连接进行负载测试,根据测试数据计算各个消息中间件对应的负载。在计算得出m个消息中间件的负载后,将负载满足预设要求的消息中间件作为目标消息中间件。例如,可以将负载最小的消息中间件作为目标消息中间件,或将负载位于预设范围的消息中间件作为目标消息中间件。
[0077] 其中,若负载位于预设范围的消息中间件有多个,则可以将负载位于预设范围的多个消息中间件中的任一消息中间件作为目标消息中间件,其他消息中间件可以作为备用,以备目标消息中间件出现异常需要更换消息中间件。
[0078] 步骤S104,连接所述目标消息中间件,并基于所述消息名称和所述消息路由信息发起消息的订阅和/或发布。
[0079] 其中,消息属性中包含消息名称和消息路由,而根据这两个信息就可以进行消息的订阅和发布,因此在与目标消息中间件建立连接后,可以根据消息属性中的消息名称和消息路由信息,通过目标消息中间件进行消息的订阅/发布。
[0080] 以上可以看出,上述消息处理方法,根据目标消息处理请求中的目标消息标识以及预存的对应关系,确定与目标消息标识对应的消息属性,而该消息属性包含属主信息,该属主信息可以对应至少一个消息中间件,因此可以从属主信息对应的至少一个消息中间件中确定负载满足预设要求的目标消息中间件,连接该目标消息中间件并基于对应的消息名称和消息路由信息发起消息的订阅和/或发布,由于上述目标消息中间件为负载满足预设要求的消息中间件,例如负载较低或负载符合某些信息订阅/发布的要求,因此能够使得发布端和订阅端较好地实现消息的订阅和/或发布,保证消息的订阅和/或发布的顺利完成。
[0081] 请参阅图4,图4是本申请另一实施例提供的一种消息处理方法的实现流程图。相对于图2对应的实施例,本实施例提供的消息处理方法在步骤S104之后还包括步骤S105和步骤S106,详述如下:
[0082] 步骤S105,在检测到所述目标消息中间件存在异常时,基于所述目标消息的属主信息确定备用消息中间件。
[0083] 步骤S106,基于所述消息名称和所述消息路由信息,通过所述备用消息中间件继续进行消息的订阅和/或发布。
[0084] 其中,通过消息中间件进行消息的订阅和/或发布过程中很可能出现异常,而如果该目标消息中间件出现异常则很可能无法再进行消息的订阅/发布,因此可以对该目标消息中间件进行检测,确定该目标消息中间件是否存在异常。
[0085] 示例性的,检测目标消息中间件是否存在异常具体可以为:检测目标消息中间件的负载是否大于阈值,以确定该目标消息中间件的负载是否过大而影响消息的订阅/发布;或者,检测目标消息中间件的其他功能是否正常等。另外,检测频率可以根据具体情况进行设定,以不影响消息的订阅和/或发布且不太占用系统资源为佳。
[0086] 参见图5,一些实施例中,步骤S105中的基于所述目标消息的属主信息确定备用消息中间件,具体实现过程可以包括:
[0087] 步骤S1051,根据所述属主信息确定可选消息中间件的地址标识,并基于所述地址标识与各个所述可选消息中间件建立通信连接。
[0088] 其中,上述可选消息中间件为上述至少一个消息中间件中除去所述目标消息中间件之外的消息中间件。
[0089] 步骤S1052,计算各个所述可选消息中间件的负载。
[0090] 步骤S1053,将各个所述可选消息中间件中负载值最低的可选消息中间件,确定为所述备用消息中间件。
[0091] 本实施例中,将步骤102中属主信息对应的消息中间件中除去目标消息中间件之外的消息中间件作为可选消息中间件,作为备用消息中间件的候选集合。基于候选集合中的各个可选消息中间件的地址标识,与各个可选消息中间件分别建立通信连接并进行负载测试,根据测试数据计算各个可选消息中间件对应的负载。在计算得出各个可选消息中间件的负载后,将负载最低的可选消息中间件作为备用消息中间件,继续进行消息的订阅和/或发布。
[0092] 可选的,对于未能确定出备用消息中间件的情况,上述消息处理方法还可以包括:
[0093] 在未能确定出所述备用消息中间件的情况下,基于所述消息名称和所述消息路由信息,通过第一预设消息中间件继续进行消息的订阅和/或发布。
[0094] 其中,在步骤102中属主信息对应的消息中间件中除去目标消息中间件之外不存在其他消息中间件的情况下,或者其他消息中间件存在异常等情况下,可以连接第一预设消息中间件,然后基于消息名称和消息路由信息,通过该第一预设消息中间件继续进行消息的订阅/发布。
[0095] 本实施例中,第一预设消息中间件可以为系统默认创建,在未能确定出备用消息中间件的情况下,调用该第一预设消息中间件进行消息的订阅/发布。
[0096] 请参阅图6,图6是本申请再一实施例提供的一种消息处理方法的实现流程图。相对于图2对应的实施例,本实施例提供的消息处理方法在步骤S104之后还包括步骤S107。详述如下:
[0097] 步骤S107,在检测到订阅/发布所述目标消息所需流量大于阈值时,通过第二预设消息中间件对所述目标消息继续进行消息的订阅和/或发布;
[0098] 其中,所述第二预设消息中间件的数据传输通道与所述至少一个消息中间件中的各个所述消息中间件的数据传输通道相独立。
[0099] 本实施例中,上述第二预设消息中间件与其他消息中间件相互独立,不占用其他消息中间件的数据传输通道,因此不影响其他消息中间件的数据传输。在将消息连接至上述第二预设消息中间件后,消息订阅端和消息发布端也都会被切换到该第二预设消息中间件,以进行消息的订阅和/或发布。
[0100] 请参阅图7,图7是本申请再一实施例提供的一种消息处理方法的实现流程图。相对于图2对应的实施例,本实施例提供的消息处理方法在步骤S102之前还包括步骤S108和步骤S109。详述如下:
[0101] 步骤S108,接收输入的消息属性文件,所述消息属性文件中包含多对一一对应的消息标识和消息属性。
[0102] 步骤S109,基于所述多对一一对应的消息标识和消息属性,建立消息标识与消息属性的对应关系。
[0103] 本实施例中,消息属性文件可以为包含消息属性的配置文件,例如XML文件、Property文件等,该消息属性文件中可以包含消息标识、消息对应的数据对象(例如java中的class)、消息的优先级、消息路由信息、消息权限、属主信息等。
[0104] 示例性的,可以将携带有上述消息属性的XML文件或Property文件输入消息处理设备,由消息处理设备从XML文件或Property文件中提取出目标消息的属性;或者,可以由用户在可视化界面中输入上述消息属性,存储在数据库中。
[0105] 示例性的,可以提取消息属性文件中的多对一一对应的消息标识1……l和消息属性1……l,l为大于或等于2的整数,根据各对一一对应的消息标识i(1≤i≤l)和消息属性i之间的对应关系,得到消息标识和消息属性的对应关系,如表2所示。
[0106] 表2消息标识和消息属性的对应关系
[0107]
[0108] 其中,表1中消息标识和消息属性的对应关系具体包含:消息标识1和消息属性1之间的对应关系,消息标识2和消息属性2之间的对应关系,……,消息标识l和消息属性l之间的对应关系。在步骤S102中得到目标消息标识后,将该目标消息标识与表1中的各个消息标识进行匹配,确定与目标消息标识相同的消息标识i,将该消息标识i对应的消息属性i作为目标消息标识对应的消息属性。
[0109] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0110] 对应于上文实施例所述的消息处理方法,图8示出了本申请实施例提供的消息处理装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
[0111] 请参阅图8,本实施例中该消息处理装置包括的各单元用于执行图2至图7对应的实施例中的各步骤。具体请参阅图2至图7以及图2至图7所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图8,上述消息处理装置200可以包括:接收模块201、消息属性确定模块202、消息中间件确定模块203和消息处理模块204,其中:
[0112] 接收模块201,用于接收输入的目标消息处理请求,所述目标消息订阅请求包含目标消息标识,所述目标消息处理请求包括目标消息订阅请求和/或目标消息发布请求;
[0113] 消息属性确定模块202,用于在预存的消息标识与消息属性的对应关系中,确定与所述目标消息标识对应的消息属性;其中,所述消息属性包含属主信息、消息名称和消息路由信息,所述属主信息对应至少一个消息中间件;
[0114] 消息中间件确定模块203,用于根据所述属主信息确定所述至少一个消息中间件中负载满足预设要求的目标消息中间件;
[0115] 消息处理模块204,用于连接所述目标消息中间件,并基于所述消息名称和所述消息路由信息发起消息的订阅和/或发布。
[0116] 作为本申请一实施例,上述消息中间件确定模块203具体可以用于:
[0117] 根据所述属主信息确定所述至少一个消息中间件中各个消息中间件的地址标识,并基于所述地址标识与各个所述消息中间件建立通信连接;
[0118] 计算各个所述消息中间件的负载;
[0119] 将各个所述消息中间件中负载值满足预设要求的消息中间件,确定为所述目标消息中间件。
[0120] 作为本申请一实施例,上述消息处理装置200还可以包括:
[0121] 故障检测模块,用于在检测到所述目标消息中间件存在故障时,基于所述目标消息的属主信息确定备用消息中间件;
[0122] 备用订阅/发布模块,用于连接所述备用消息中间件,并基于所述备用消息中的消息名称和消息路由信息继续进行消息的订阅和/或发布。
[0123] 作为本申请一实施例,上述消息处理模块204具体可以用于:
[0124] 根据所述属主信息确定可选消息中间件的地址标识,并基于所述地址标识与各个所述可选消息中间件建立通信连接;其中,所述可选消息中间件为所述至少一个消息中间件中除去所述目标消息中间件之外的消息中间件;
[0125] 计算各个所述可选消息中间件的负载;
[0126] 将各个所述可选消息中间件中负载值最低的可选消息中间件,确定为所述备用消息中间件。
[0127] 作为本申请一实施例,上述消息处理装置200还可以包括:
[0128] 第二消息处理模块,用于在未能确定出所述备用消息中间件的情况下,基于所述备用消息中的消息名称和消息路由信息,通过第一预设消息中间件继续进行消息的订阅和/或发布。
[0129] 作为本申请一实施例,上述消息处理装置200还可以包括:
[0130] 流量检测模块,用于在检测到订阅和/或发布所述目标消息所需流量大于阈值时,通过第二预设消息中间件对所述目标消息继续进行消息的订阅和/或发布;
[0131] 其中,所述第二预设消息中间件的数据传输通道与所述至少一个消息中间件中的各个所述消息中间件的数据传输通道相独立。
[0132] 作为本申请一实施例,上述消息处理装置200还可以包括:
[0133] 文件接收模块,用于接收输入的消息属性文件,所述消息属性文件中包含多对一一对应的消息标识和消息属性;
[0134] 对应关系建立模块,用于基于所述多对一一对应的消息标识和消息属性,建立消息标识与消息属性的对应关系。
[0135] 需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0136] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0137] 图9是本申请另一实施例提供的一种终端设备的结构框图。如图9所示,该实施例的终端设备30包括:处理器31、存储器32以及存储在所述存储器32中并可在所述处理器31上运行的计算机程序33,例如消息处理方法的程序。处理器31执行所述计算机程序33时实现上述各个消息处理方法各实施例中的步骤,例如图2所示的S101至S104。或者,所述处理器31执行所述计算机程序33时实现上述图8对应的实施例中各单元的功能,例如,图8所示的模块201至204的功能,具体请参阅图8对应的实施例中的相关描述,此处不赘述。
[0138] 示例性的,所述计算机程序33可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器32中,并由所述处理器31执行,以完成本申请。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述终端设备30中的执行过程。例如,所述计算机程序33可以被分割成接收模块、消息属性确定模块、消息中间件确定模块和消息处理模块,各模块具体功能如上所述。
[0139] 本领域技术人员可以理解,图9仅仅是终端设备30的示例,并不构成对终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述转台设备还可以包括输入输出设备、网络接入设备、总线等。
[0140] 所称处理器31可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0141] 所述存储器32可以是所述终端设备30的内部存储单元,例如终端设备30的硬盘或内存。所述存储器32也可以是所述终端设备30的外部存储设备,例如所述终端设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器32还可以既包括所述终端设备30的内部存储单元也包括外部存储设备。所述存储器32用于存储所述计算机程序以及所述转台设备所需的其他程序和数据。所述存储器32还可以用于暂时地存储已经输出或者将要输出的数据。
[0142] 本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述消息处理方法各个实施例中的步骤。
[0143] 本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述消息处理方法各个实施例中的步骤。
[0144] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0145] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0146] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0147] 在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0148] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0149] 以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。