一种消息转发方法、系统、电子设备及存储介质与流程

文档序号:29163888发布日期:2022-03-09 01:37阅读:174来源:国知局
一种消息转发方法、系统、电子设备及存储介质与流程

1.本技术实施例涉及消息分发技术领域,尤其涉及一种消息转发方法、系统、电子设备及存储介质。


背景技术:

2.目前,在消息分发场景中,由消息分发节点将上级节点的消息转发至对应的下级节点处理。消息在转发过程中,分发节点不会回包给上级节点,下级节点也不会回包给分发节点。下级节点会根据消息中携带的来源字段,判断消息源头,然后直接回包给上级节点,以此完成一次消息处理。
3.但是,采用上述模式进行消息分发时,分发节点无法确认消息是否送达下级节点,也无法感知下级节点是否异常,其消息传递的可靠性偏低。当下级节点过载或故障时,分发节点仍然会将消息转发给过载或故障节点,导致消息丢失或延迟,影响系统的业务运行。


技术实现要素:

4.本技术实施例提供一种消息转发方法、系统、电子设备及存储介质,能够提升消息转发的可靠性,解决现有消息转发模式可靠性差的技术问题。
5.在第一方面,本技术实施例提供了一种消息转发方法,包括:
6.接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信,以指示对应下级节点对所述第一消息进行回包;
7.根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;
8.接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。
9.在第二方面,本技术实施例提供了一种消息转发系统,包括:
10.封装模块,用于接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信,以指示对应下级节点对所述第一消息进行回包;
11.转发模块,用于根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;
12.接收模块,用于接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。
13.在第三方面,本技术实施例提供了一种电子设备,包括:
14.存储器以及一个或多个处理器;
15.所述存储器,用于存储一个或多个程序;
16.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的消息转发方法。
17.在第四方面,本技术实施例提供了一种包含计算机可执行指令的存储介质,所述
计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的消息转发方法。
18.本技术实施例通过接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信;根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。采用上述技术手段,通过设定协议使分发节点接收下级节点的回包,以确认当前消息转发状态及目标下级节点的运行状态,可以提升消息转发的可靠性和稳定性。依此执行流量调度业务,可以优化系统流量调度效果,进一步提升系统消息转发的可靠性和稳定性。
附图说明
19.图1是本技术实施例提供的一种消息转发方法的流程图;
20.图2是本技术实施例中的第一消息转发流程图;
21.图3是本技术实施例基于路由字段的消息转发示意图;
22.图4是本技术实施例的消息转发及回包示意图;
23.图5是本技术实施例对应不同用户id尾号的消息分发示意图;
24.图6是本技术实施例提供的一种消息转发系统的结构示意图;
25.图7是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
26.为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
27.本技术提供的一种消息转发方法,旨在分发节点将上级节点的消息转发至下级节点时,通过使用设定协议封装消息,指示对应下级节点对消息进行回包。以此可以使分发节点获取到下级节点的运行状态和消息转发状态,实现更精准、稳定的消息转发和流量调度。相对于传统的消息转发方式,消息在由分发节点转发给下级节点后,下级节点会直接回包给上级节点,而分发节点无法确认消息是否送达下级节点,也无法感知下级节点是否异常。在不清楚消息转发状态及下级节点的运行状态的情况下,分发节点难以进行准确的流量调度。当下级节点过载或故障时,分发节点仍然会将消息转发给过载或故障节点,导致消息丢失或延迟,影响系统的业务运行。基于此,提供本技术实施例的一种消息转发方法,以解决现有消息转发模式可靠性差的技术问题。
28.实施例:
29.图1给出了本技术实施例提供的一种消息转发方法的流程图,本实施例中提供的
消息转发方法可以由消息转发设备执行,该消息转发设备可以通过软件和/或硬件的方式实现,该消息转发设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该消息转发设备可以是用作为消息分发节点的网络路由设备、消息分发服务器等处理设备。
30.下述以该分发节点为执行消息转发方法的主体为例,进行描述。参照图1,该消息转发方法具体包括:
31.s110、接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信,以指示对应下级节点对第一消息进行回包。
32.本技术实施例在进行消息转发时,通过接收上级节点实时发送的消息,定义上级节点发送的消息为第一消息,将该消息进行处理后转发给相应的下级节点。
33.在处理第一消息时,使用预设定的协议封装第一消息。通过在第一消息的基础上加一层封装,使其变成特定格式的协议包,并设置其特定的文件名称。该设定协议用于分发节点与各个下级节点进行通信,基于该通信协议,分发节点向各个下级节点进行消息分发,各个下级节点基于该通信协议向分发节点发送回包消息,以告知分发节点第一消息的接收状态,以及自身当前的运行状态。
34.可以理解的是,各个下级节点会预先配置该通信协议,以便于对接收到的第一消息进行解封装,获取第一消息的消息内容进行业务处理。并在接收到第一消息之后,对该第一消息进行回包,回包消息同样使用该通信协议进行封装,然后发送至分发节点,以告知分发节点第一消息的接收状态。
35.不同于传统的异步消息转发方式,本技术实施例采用同步消息转发的方式,分发节点基于该通信协议进行第一消息转发后,会指示下级节点及时回复第一消息的接收状态及自身的运行状态。下级节点接收到第一消息后,根据该第一消息的特定文件名称,即可使用预设定通信协议进行解封装。并对该第一消息进行回包,告知分发节点当前第一消息的接收状态。
36.需要说明的是,分发节点在进行消息转发时,只需要封装上级节点下发的第一消息,不用解析消息内容,也不需要获知消息的具体格式。以此避免了消息转发过程中的消息格式转换流程,进而减少消息转发的工作量,提升消息转发效率。
37.s120、根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点。
38.进一步地,基于封装好的第一消息,分发节点在将第一消息转发至下级节点时,会根据第一消息中包含的路由字段,确定接收该第一消息的目标下级节点。在此之前,分发节点预先为各个下级节点配置相应的路由字段,构建路由字段与下级节点的映射关系,将这一映射关系同步至上级节点和下级节点,各个节点即可基于该映射关系确定第一消息的处理节点。
39.具体地,参照图2,本技术实施例第一消息的转发流程包括:
40.s1201、确定第一消息包含的路由字段;
41.s1202、根据路由字段所处的字段范围将第一消息转发至对应的目标下级节点,目标下级节点预先配置对应的字段范围,以指示目标下级节点负责处理字段范围内的第一消息。
42.通过预先配置路由字段,使得每种格式的第一消息都可以由指定路由字段(比如
用户id、视频id等字段),对应的下级节点处理。以用户id为例,每一下级节点负责相应数量用户id的第一消息处理。后续上级节点在处理某一个用户id产生的第一消息时,在第一消息中添加用户id作为路由字段。分发节点根据这一用户id即可查询到负责该用户id对应的第一消息的下级节点,以该下级节点作为目标下级节点。例如,参照图3,上级节点下发消息1个分发节点后,分发节点根据消息1中包含的用户id“123”,将消息1转发至负责用户id“123”的消息处理的机房1进行第一消息处理,以此完成分发节点的消息转发。
43.可以理解的是,路由字段根据字段值进行排序,每个下级节点负责相应数量字段值构成的字段范围。当分发节点接收到第一消息后,通过解析其中路由字段的字段值,确定该字段值所处的字段范围,并确定负责处理该字段范围的第一消息的下级节点为目标下级节点,进而将第一消息发送至该目标下级节点。
44.对应的,目标下级节点接收到第一消息后根据第一消息包含的路由字段,也可以通过与自身负责处理的字段范围比对,判断该第一消息是否存在错误转发的情况,并将判断结果放入回包消息中。
45.通过按照第一消息中路由字段的字段值将第一消息路由到特定的下级节点,对于不同的消息,如果路由字段的字段值相同,可以路由到同一个下级节点。以此可以避免数据跨节点同步的延迟,保证了数据一致性。同时通过改造消息分发节点,使其按照路由字段进行第一消息转发,可以实现流量的合理、准确分配和容灾,提升消息转发的可靠性。
46.可选的,基于上述预先构建的映射关系,上级节点在下发第一消息时,也可以根据上级节点当前需要进行这一第一消息处理的下级节点。确定该下级节点所负责的路由字段,进而在第一消息中添加对应的路由字段。第一消息下发到分发节点后。分发节点即可根据第一消息中包含的路由字段将第一消息转发到上级节点期望的下级节点进行处理。
47.分发节点将第一消息发出后,对应目标下级节点一端,若接收到该第一消息,则执行该第一消息的回包逻辑,返回相应的回包消息给分发节点。定义该回波消息为第二消息,分发节点会在设定监听周期监听该第二消息,以根据该第二消息执行相应的流量调度业务。
48.可选的,若分发节点在设定监听周期内未接收到该回包消息,则确定当前第二消息接收超时。在确定第二消息接收超时的情况下,执行目标下级节点的流量调度业务或者重发第一消息。由于第二消息接收超时,表明此前发送的第一消息可能为送达目标下级节点,或者目标下级节点出现故障。则此时分发节点可以通过重发第一消息给目标下级节点,以确保目标消息节点能够接收到该第一消息。若设定次数转发该第一消息均未接收到回包的第二消息,则确定目标下级节点故障,需要进行目标下级节点的流量调度业务。同样的,分发节点也可以在第二消息第一次接收超时的情况下,直接进行目标下级节点的流量调度业务。
49.其中,在第二消息接收查收的情况下进行流量调度的过程中,分发节点需要重新指定下级节点重新处理当前发送失败的第一消息。并且,对于故障的目标下级节点,根据其负责处理路由字段范围,将这部分路由字段范围配置给其他下级节点,有其他下级节点负责这部分路由字段范围所对应的第一消息。以此来保障系统业务处理的稳定性和可靠性,优化系统分发处理效果。
50.s130、接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第
二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。
51.具体地,参照图4,消息分发节点发送第一消息至目标下级节点后,若在设定监听周期内接收到目标下级节点回包的第二消息,由于第二消息使用设定协议封装,需要将第二消息解封装。之后,将第二消息回包至上级节点,以告知上级节点第一消息的接收状态,以此完成分发节点的一次消息转发流程。
52.示例性地,在系统产生新消息时,上级节点会将接收到的消息转发给分发节点。分发节点收到上级节点发来的消息时,会给消息加一层封装,使其变成特定格式的协议包,并使用特定命名名称如命名为marshall。然后将协议包转发给目标下级节点,并等待,目标下级节点的回包。目标下级节点收到该协议包后,对其解封装获取原来的消息。业务逻辑处理完成后,会生成相应的回包消息,再把回包消息封装成协议包发送给分发节点。分发节点收到该回包的协议包后,解封装获取回包消息,并把回包消息转发给上级节点。在上级节点收到回包消息后,即完成一次消息转发处理流程。
53.整个消息转发过程,分发节点可以通过目标下级节点的回包确认消息是否送达到目标下级节点,以此来实现消息的可靠传递。此外,分发节点还可以通过判断回包是否超时、错误码是否正常等方式,感知目标下级节点有无异常。当某个目标下级节点过载或故障时,分发节点能够将流量转移到其他健康的下级节点,保证系统整体服务的正常运行,提升业务服务容灾能力。
54.其中,分发节点根据第二消息中提供的目标下级节点的消息接收状态和目标下级节点的运行状态,进行目标下级节点的流量调度。参照图5,以用户id尾号作为消息路由字段为例。对应下级节点机房1、机房2和机房3,其分别负责id尾号00-33,34-66以及67-99路由字段范围的消息。正常情况下,分发节点根据上述路由字段范围,将对应id尾号的第一消息转发至相应下级节点处理。当需要流量调度时,则通过调整下级节点负责的字段范围,以实现消息转发处理的稳定性和可靠性。
55.具体地,若分发节点基于第二消息确定目标下级节点过载,则缩小目标下级节点对应的字段范围,将字段范围中指定分段的路由字段调配至其余下级节点。例如,图5中基于第二消息确定机房3过载,此时需要缩小机房3负责的字段范围,将原先负责的id尾号范围“67-99”,调整为“67-88”,将“89-99”部分id尾号调整至计算资源空闲的机房2,则机房2此时负责id尾号“34-66”以及89-99”的消息处理。
56.若分发节点基于第二消息确定目标下级节点故障,将与目标下级节点对应的字段范围的第一消息调配至其余下级节点,以指示其余下级节点处理字段范围内的第一消息。例如,图5中基于第二消息确定机房3故障,此时需要将机房3负责的字段范围,即d尾号范围“67-99”调配至机房1和/或机房2,以通过机房1和/或机房2处理id尾号“67-99”的消息。
57.可选的,通过提取第一消息中包含的备用路由信息,基于备用路由信息从其余下级节点中确定第一消息的备用路由节点,将第一消息发送至备用路由节点。在此之前,预先指定各个字段值消息的备用路由节点,当对应路由字段的下级节点故障时,可以通过备用路由节点处理该消息。例如,在机房3故障时,确定id尾号“67-88”部分的消息的备用路由节点为机房1,则将这部分消息转发至机房1处理。确定id尾号“89-99”部分的消息的备用路由节点为机房2,则将这部分消息转发至机房2处理。
58.此外,分发节点还基于第二消息确定目标下级节点的计算资源状态,并根据计算
资源状态扩展目标下级节点对应的字段范围。可以理解的是,对于计算资源较为空闲的下级节点,可以将其余负载较大的节点所负责的字段范围调度至当前目标下级节点,以扩展目标下级节点对应的字段范围,实现目标下级节点计算资源的充分利用,同时也减少了其他节点的负载压力,优化消息处理的稳定性和处理效率。
59.本技术实施例根据路由字段的范围,配置各个机房的路由字段范围。路由字段范围按用户id尾号划分,其中,用户id尾号00-33划分到机房1,34-66划分到机房2,67-99划分到机房3,以此来实现精准控制机房流量,当某个机房容量发生变化时,可以通过配置用户id尾号的范围,调整这个机房的流量,避免机房过载或低载。
60.可选的,分发节点还可以一键屏蔽指定机房流量,当遇到机房级故障等需要进行机房流量调度时,可以快速隔离故障机房,将故障机房流量转移到备用机房,完成容灾。
61.通过不改变入口消息格式的情况下,将不可靠的异步消息变成可靠的同步消息传递,链路分发节点能够及时感知下游节点的消息处理状态及异常情况,从而隔离故障节点,提升业务处理的稳定性。同时,分发节点具备流量路由调度能力,可以精准控制流量分配,进一步提升业务处理的稳定性和可靠性。
62.上述,通过接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信;根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。采用上述技术手段,通过设定协议使分发节点接收下级节点的回包,以确认当前消息转发状态及目标下级节点的运行状态,可以提升消息转发的可靠性和稳定性。依此执行流量调度业务,可以优化系统流量调度效果,进一步提升系统消息转发的可靠性和稳定性。
63.在上述实施例的基础上,图6为本技术提供的一种消息转发系统的结构示意图。参考图6,本实施例提供的消息转发系统具体包括:封装模块21、转发模块22和接收模块23。
64.其中,封装模块21用于接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信,以指示对应下级节点对所述第一消息进行回包;
65.转发模块22用于根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;
66.接收模块23用于接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。
67.具体地,转发模块22具体用于确定第一消息包含的路由字段;根据路由字段所处的字段范围将第一消息转发至对应的目标下级节点,目标下级节点预先配置对应的字段范围,以指示目标下级节点负责处理字段范围内的第一消息。
68.其中,在确定第二消息接收超时的情况下,执行目标下级节点的流量调度业务或者重发第一消息。
69.接收模块23具体用于:
70.基于第二消息确定目标下级节点过载,缩小目标下级节点对应的字段范围,将字段范围中指定分段的路由字段调配至其余下级节点;
71.基于第二消息确定目标下级节点故障,将与目标下级节点对应的字段范围的第一消息调配至其余下级节点,以指示其余下级节点处理字段范围内的第一消息;提取第一消息中包含的备用路由信息,基于备用路由信息从其余下级节点中确定第一消息的备用路由节点,将第一消息发送至备用路由节点;
72.基于第二消息确定目标下级节点的计算资源状态,并根据计算资源状态扩展目标下级节点对应的字段范围。
73.上述,通过接收上级节点发送的第一消息,使用设定协议封装第一消息,设定协议用于与各个下级节点进行通信;根据第一消息包含的路由字段,将第一消息转发至对应的目标下级节点;接收目标下级节点根据第一消息回包的第二消息,使用设定协议解封装第二消息,将第二消息转发至上级节点,并根据第二消息执行目标下级节点的流量调度业务。采用上述技术手段,通过设定协议使分发节点接收下级节点的回包,以确认当前消息转发状态及目标下级节点的运行状态,可以提升消息转发的可靠性和稳定性。依此执行流量调度业务,可以优化系统流量调度效果,进一步提升系统消息转发的可靠性和稳定性。
74.本技术实施例提供的消息转发系统可以用于执行上述实施例提供的消息转发方法,具备相应的功能和有益效果。
75.在上述实际上例的基础上,本技术实施例还提供了一种电子设备,参照图7,该电子设备包括:处理器、存储器、通信模块、输入装置及输出装置。存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本技术任意实施例所述的消息转发方法对应的程序指令/模块(例如,消息转发系统中的封装模块、转发模块和接收模块)。通信模块用于进行数据传输。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的消息转发方法。输入装置可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置可包括显示屏等显示设备。上述提供的电子设备可用于执行上述实施例提供的消息转发方法,具备相应的功能和有益效果。
76.在上述实施例的基础上,本技术实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种消息转发方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本技术实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的消息转发方法,还可以执行本技术任意实施例所提供的消息转发方法中的相关操作。
77.上述仅为本技术的较佳实施例及所运用的技术原理。本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由权利要求的范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1