CN114095561B - 消息处理***和方法、设备及存储介质 - Google Patents
消息处理***和方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114095561B CN114095561B CN202210068462.1A CN202210068462A CN114095561B CN 114095561 B CN114095561 B CN 114095561B CN 202210068462 A CN202210068462 A CN 202210068462A CN 114095561 B CN114095561 B CN 114095561B
- Authority
- CN
- China
- Prior art keywords
- gateway
- message channel
- message
- virtualization
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/18—Service support devices; Network management devices
- H04W88/184—Messaging devices, e.g. message centre
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种消息处理***和方法、设备及存储介质。在本申请实施例中,在某一消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,路由信息会随绑定关系的变化及时更新,基于该动态更新的路由信息可直接寻址到网关设备,在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种消息处理***和方法、设备及存储介质。
背景技术
在实际应用中,一些应用***经常以短信向用户发送提醒消息、促销活动等信息。为了满足大型、复杂应用***的差异化的短信服务需求,允许这些应用***提供或定制专门的短信服务平台,该短信服务平台通过短信网关与运营商或代理商提供的短信通道进行对接,将运营商和代理商统称为短信通道的供应商,进而借助于供应商的短信通道对外发送短消息。
现有技术中,短信网关采用集群部署方式,该网关集群中包括多台网关服务器,通过对这些网关服务器进行分组可得到多个网关分组,每个网关分组包括N台网关服务器。在实际使用中,每个供应商的短信通道对接一个网关分组,另外考虑到短信通道与网关服务器之间需要建立TCP长连接,所以要求该短信通道能够支持不小于网关分组中网关服务器的数量N的连接数,以保证网关分组中的每台网关服务器均能与该短信通道建立一条TCP长连接,实现连接无差异化。即,从短信服务平台的角度来看,可以通过网关分组中的任一台网关服务器将短信发送至该短信通道中去,以便提高短信发送效率。
但是,随着应用的发展,越来越多的应用***需要短信网关能够接入连接数小于网关分组中网关服务器的数量N的短信通道,如果强制要求短信通道支持的连接数不小于N会造成连接资源的浪费。对于这种需求,现有短信网关的接入方式显然不再适用,这是因为当短信服务平台无差别地对各台网关服务器进行调度时,如果当前调度到网关服务器未与短信通道建立连接,需要将该短信通道从已建连的网关服务器切换至当前被调度到的网关服务器上,导致该信通道需要在不同网关服务器之间进行建连和断连,进而导致短信发送延时和资源浪费。
发明内容
本申请的多个方面提供一种消息处理***和方法、设备及存储介质,用以节约连接资源,减少消息发送延时。
本申请实施例提供一种消息处理***,包括:管控设备、网关集群和消息服务设备,网关集群包括至少一个网关分组,每个网关分组用于与至少一个消息通道对接;管控设备,用于在第一消息通道对接第一网关分组的情况下,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系,并在绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接,将第一消息通道对应的路由信息同步给消息服务设备,路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,第一网关分组是任一网关分组;消息服务设备,用于根据路由信息和第一地址列表,对长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端;第一地址列表中存储有第一网关分组中各网关设备的地址信息。
本申请实施例还提供一种消息处理方法,包括:在第一消息通道对接网关集群中的第一网关分组的情况下,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系;第一网关分组是网关集群中的任一网关分组;在绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接;将第一消息通道对应的路由信息同步给消息服务设备,路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,以供消息服务设备从当前与第一消息通道建立长连接的网关设备中寻址目标网关设备并经目标网关设备将目标消息发送至第一消息通道中。
本申请实施例还提供一种消息处理方法,包括:获取管控设备发送的第一消息通道对应的路由信息,第一消息通道对接第一网关分组,路由信息包括第一网关分组中当前与第一消息通道建立长连接的网关设备的地址信息,路由信息随第一消息通道与第一网关分组中网关设备之间绑定关系的动态变化而变化;根据路由信息和预先维护的第一地址列表,对长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端,第一地址列表中存储有第一网关分组中各网关设备的地址信息。
本申请实施例还提供一种消息处理设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以实现本申请实施例提供的消息处理方法中的各步骤。
本申请实施例还提供一种消息处理设备,包括:存储器和处理器;存储器,用于存储计算机程序;处理器,与存储器耦合,用于执行计算机程序,以实现本申请实施例提供的消息处理方法中的各步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例提供的消息处理方法中的各步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器实现本申请实施例提供的消息处理方法中的各步骤。
在本申请实施例中,针对任一消息通道,在该消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该消息通道的绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,绑定关系可以动态变更,可以在消息通道与网关设备之间按需建立连接,节约连接资源,解决在消息通道支持的连接数大于网关分组中网关设备数量的情况下,连接资源浪费的问题,而且路由信息会随绑定关系的变化及时更新,消息服务设备基于该动态更新的路由信息可直接寻址到网关设备,在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请示例性实施例提供的一种消息处理***的结构示意图;
图2为本申请示例性实施例提供的另一种消息处理***的结构示意图;
图3为本申请示例性实施例提供的又一种消息处理***的结构示意图;
图4为本申请示例性实施例提供的又一种消息处理***的结构示意图;
图5为本申请示例性实施例提供的一种消息处理方法的流程示意图;
图6为本申请示例性实施例提供的另一种消息处理方法的流程示意图;
图7a为本申请示例性实施例提供的一种消息处理装置的结构示意图;
图7b为本申请示例性实施例提供的一种消息处理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有技术中,短信服务平台无差别地对各台网关服务器进行调度,导致的短信发送延时和资源浪费的问题,在本申请实施例中,针对任一消息通道,在该消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该消息通道的绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,绑定关系可以动态变更,可以在消息通道与网关设备之间按需建立连接,节约连接资源,解决在消息通道支持的连接数大于网关分组中网关设备数量的情况下,连接资源浪费的问题,而且路由信息会随绑定关系的变化及时更新,消息服务设备基于该动态更新的路由信息可直接寻址到网关设备,在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请示例性实施例提供的一种消息处理***的结构示意图。如图1所示,该***包括:管控设备101(也可称为管控中心)、网关集群102和消息服务设备103(也可称为消息服务平台)。可选地,网关集群102和消息服务设备103之间通过远程过程调用(Remote Procedure Call,RPC)框架进行调度,如图1所示。RPC框架的地址注册中心会将网关集群中网关设备注册的RPC服务器地址列表返回给消息服务设备,以便消息服务设备能够基于该RPC服务器地址列表与网关设备建立连接,通过网关设备向外发送各种消息。在本实施例中,网关集群中的网关设备与供应商提供的消息通道建立绑定关系,不同消息通道可负责传输不同类型或不同应用的消息。消息服务设备将要发送的消息通过网关设备发送至对应的消息通道中,由该消息通道将消息最终发送至目标终端。其中,供应商的消息通道与网关设备之间的绑定关系可按需动态发生变化,当该绑定关系动态变化时,消息服务设备寻址网关设备的路由信息也会即时变更。
在本实施例中,网关集群包括至少一个网关分组,在图1中,以网关集群中包含一个网管分组(如第一网关分组)为例进行图示,但并不限于此。每个网关分组中包括至少一台网关设备,可选地,网关设备可以实现为物理服务器、云服务器、虚拟机或容器等任意具有网关功能的设备形态。每个网关分组与至少一个消息通道104对接,每个消息通道与一个网关分组对接,即每个消息通道与一个网关分组中的网关设备建立长连接(如TCP连接),在同一网关分组中,每个消息通道可以与该网关分组中的一台或多台网关设备建立长连接,且这种关系可动态变化。其中,消息通道是由运营商或者代理商提供的消息处理服务器、网关设备、基站、这些设备之间的消息传输链路形成的,能够将消息发送至用户终端的传输通道,简而言之,消息通道是指能够直达用户终端的消息传输通道。消息服务设备负责与各应用***对接,负责接收各应用***产生的消息,并负责将消息经由网关分组中的网关设备提供给对应的消息通道,由消息通道将消息发送至相应的终端设备上。其中,根据应用***的不同,本实施例的消息可以包含但不限于:文本短信、语音短信、或富文本消息等各种消息。
在本实施例中,管控设备用于对网关集群中的网关设备进行调度和分配,以实现与消息通道的连接。为了便于描述和区分,将网关集群中任意一个网关分组称为第一网关分组,将需要与第一网关分组对接的消息通道称为第一消息通道,在第一消息通道对接第一网关分组的情况下,可按需动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系,该绑定关系表示第一消息通道可以与第一网关分组中的网关设备建立长连接,第一消息通道与第一网关分组中网关设备之间的绑定关系可按需动态变化,例如绑定关系可以按需建立,也可以按需解除。管控设备可在第一消息通道与第一网关分组中网关设备之间的绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备是否成功建立长连接,在确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接的情况下,将第一消息通道对应的路由信息同步给消息服务设备。其中,当前与第一消息通道建立长连接的网关设备的数量可以是一个,也可以是多个,对此不做限定。
其中,第一消息通道对应的路由信息,可简称为通道侧的路由信息,第一消息通道对应的路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,例如,网关设备的IP地址信息。除此之外,第一消息通道对应的路由信息还可以体现第一消息通道与网关设备之间的连接关系。在第一消息通道与第一网关分组中的网关设备之间的绑定关系发生变化的情况下,与第一消息通道建立长连接的网关设备也会发生变化,那么第一消息通道对应的路由信息也会发生变化。不同消息通道对应的路由信息不同,同一网关分组可以对应一条消息通道,也可以对应多条消息通道。不同消息通道与第一网关分组中的网关设备之间的绑定关系不同,相应地,不同消息通道对应的路由信息也会有所不同。
其中,将第一消息通道对应的路由信息同步给消息服务设备的实施方式并不限定。例如,当前第一网关分组中与第一消息通道建立绑定关系的网关设备有10台,其中,网关设备A与第一消息通道断开连接,则第一消息通道与第一网关分组中网关设备之间的绑定关系发生变化,管控设备可以向消息服务设备发送通知信息,该通知信息包括网关设备A的地址信息,并且包括该网关设备A与第一消息通道断开连接的信息,基于此,消息服务设备可将之前保存的第一消息通道对应的路由信息中网关设备A的地址信息删除,采用增量路由通知方式实现向消息服务设备同步第一消息通道对应的新路由信息的目的。或者管控设备也可以在第一消息通道对应的路由信息发生变化时,直接向消息服务设备提供新的路由信息,该新的路由信息包括当前与第一消息通道建立绑定关系的各网关设备的地址信息,但不包括已经与第一消息通道断开连接的网关设备A的地址信息。
在本实施例中,消息服务设备可以直接根据第一消息通道对应的路由信息,对与第一消息通道建立的长连接的网关设备进行路由寻址,从中得到目标网关设备的地址信息;后续可以根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端。或者,在另一可选实施例中,消息服务设备和管控设备均维护有第一地址列表,第一地址列表中存储有第一网关分组中各网关设备的地址信息,这些网关设备是第一网关分组中处于有效或可用状态的网关设备;基于此,消息服务设备可以根据第一消息通道对应的路由信息和第一地址列表,对与第一消息通道建立的长连接的网关设备进行路由寻址,从中得到目标网关设备的地址信息;例如,该路由信息包括当前与第一消息通道建立长连接的各网关设备的地址信息,将各网关设备的地址信息与第一地址列表进行匹配,得到位于第一地址列表中的网关设备的地址信息,这些位于第一地址列表中的地址信息表示第一网关分组中当前与第一消息通道建立长连接且处于有效或可用状态的网关设备,进而从位于第一地址列表中的网关设备的地址信息中选择本次消息发送所需的目标网关设备的地址信息,后续可以根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端。
在本申请实施例中,针对任一消息通道,在该消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该消息通道的绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,绑定关系可以动态变更,可以在消息通道与网关设备之间按需建立连接,节约连接资源,解决在消息通道支持的连接数大于网关分组中网关设备数量的情况下,连接资源浪费的问题,而且路由信息会随绑定关系的变化及时更新,消息服务设备基于该动态更新的路由信息可直接寻址到网关设备,尤其是在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
在一可选实施例中,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系之前,可以将第一网关分组中的网关设备预分配给第一消息通道。具体地,第一消息通道可以向管控设备发送上线请求,该上线请求中包括第一消息通道支持的连接网关设备的最大连接数M,M是正整数;管控设备可响应第一消息通道的上线请求,判断第一消息通道支持的最大连接数M是否小于第一网关分组在初始状态包含的网关设备的总数N,N是正整数;在第一消息通道支持的最大连接数M大于或等于第一网关分组中当前包含的网关设备的总数N的情况下,将第一网关分组中的全部N台网关设备与第一消息通道建立绑定关系;在第一消息通道支持的最大连接数M小于第一网关分组中当前包含的网关设备的总数N的情况下,第一网关分组中的M台网关设备与第一消息通道建立连接之后,第M+1台至第N台网关设备想要与第一消息通道建立连接关系,需要抢占式的与第一消息通道建立连接关系,导致第一消息通道被频繁抢占,第一网关分组中的网关设备频繁地上线或者下线,影响***稳定性。基于此,在初始阶段,在第一消息通道支持的最大连接数M小于第一网关分组中当前包含的网关设备的总数N的情况下,可以采用预分配方式,从第一网关分组中的N台网关设备中选择M网关设备,在第一消息通道与该M台网关设备之间建立绑定关系,避免第一消息通道被频繁抢占,与第一消息通道建立的连接频繁地断开,减少发送消息的时延。
在一可选实施例中,并不限定管控设备采用预分配方式在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系的实施方式。下面举例说明。
实施方式B1:可以随机从第一网关分组中的N台网关设备中选择M台网关设备,在第一消息通道与该M台网关设备之间建立绑定关系。
实施方式B2:预先设置第一地址列表,第一地址列表中存储有第一网关分组中当前包含的各网关设备的地址信息,将第一地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定列表环中的M个地址信息;在第一消息通道与M个地址信息对应的M台网关设备之间建立绑定关系。其中,循环分配的方式,表示从列表环中选择起始地址信息,并根据该起始地址信息,按照逆时针或者顺时针方向依次从列表环中选择M个地址信息;哈希分配方式是指采用哈希函数,从列表环中选择M个地址信息;随机分配方式是指随机从列表环中选择M个地址信息中。
在一可选实施例,在初始阶段执行预分配操作之后,可以根据网关设备的状态变化信息,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系,为了便于描述,将上述实施例提到的动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系的过程简称为再分配过程。其中,一方面该状态变化信息可以体现第一网关分组中与第一消息通道建立绑定关系的网关设备的连接状态变化信息,该连接状态信息可以包含但不限于:建立连接、断开连接、重新建立连接或连接异常等;另一方面该状态变化信息可以体现第一网关分组中与第一消息通道建立绑定关系的网关设备的负载信息、服务质量(Quality of Service,QoS)数据或每秒查询率(Query Per Second,QPS)等。下面从第一消息通道的维度,对第一网关分组中的网关设备执行再分配过程进行说明:管控设备可根据第一网关分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的数量;根据当前与第一消息通道建立长连接的网关设备的数量,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系;或者,根据第一网关分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的负载信息;根据当前与第一消息通道建立长连接的网关设备的负载信息,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。具体地,可以分为如下四种情况进行说明。
情况C1:预先设定与第一消息通道建立长连接的网关设备的第一数量阈值,该第一数量阈值可以是小于或者等于第一消息通道支持的最大连接数M的任何值。在当前与第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值的情况下,根据第一数量阈值与当前与第一消息通道建立长连接的网关设备的数量的差值,确定第一数量,使得当前与第一消息通道建立长连接的网关设备的数量为第一数量阈值;根据该第一数量,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第一网关设备,新建第一消息通道与第一网关设备之间的绑定关系。例如,第一网关分组中包括20台网关设备,其中,与第一消息通道建立长连接的网关设备的数量为10,第一数量阈值为15,则第一数量为15-10=5,从第一网关分组中尚未与第一消息通道建立绑定关系的10台网关设备中选择5台网关设备作为第一网关设备,新建第一消息通道与第一网关设备之间的绑定关系。
可选地,若第一网关分组中的第三网关设备出现设备故障或者网路故障等情况,则可以将第三网关设备从第一网关分组中销毁。若当前与第一消息通道建立长连接的网关设备中出现被销毁的第三网关设备,则可以确定第三网关设备的数量和当前与第一消息通道建立绑定关系的网关设备的数量的比值;在该比值大于第一比例阈值时,确定当前与第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值,确定第一数量,根据该第一数量,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第一网关设备,新建第一消息通道与第一网关设备之间的绑定关系。其中,第一比例阈值可以是70%、80%或者90%。进一步,在该比值大于第二比例阈值且小于第一比例阈值时,可以对外发出预警信息,以供管控设备的工作人员对第三网络设备进行修复。其中,第二比例阈值可以是40%或50%等。
情况C2:预先设定与第一消息通道建立长连接的网关设备的第二数量阈值,该第二数量阈值可以是小于第一分组或者等于第一消息通道支持的最大连接数M的任何值。在当前与第一消息通道建立长连接的网关设备的数量大于设定的第二数量阈值的情况下,根据当前与第一消息通道建立长连接的网关设备的数量与第二数量阈值的差值,确定第二数量,根据该第二数量,从第一网关分组中已与第一消息通道建立绑定关系的网关设备中选择第二网关设备,断开第一消息通道与第二网关设备之间的长连接,删除第一消息通道与第二网关设备之间的绑定关系。例如,当前与第一消息通道建立长连接的网关设备的数量为10,第二数量阈值为8,则第二数量为10-8=2,从第一网关分组中已经与第一消息通道建立绑定关系的10台网关设备中选择2台网关设备作为第二网关设备,断开第一消息通道与第二网关设备之间的长连接,删除第一消息通道与第二网关设备之间的绑定关系。
情况C3:预先设定网关设备的第一负载阈值,在当前与第一消息通道建立长连接的网关设备的负载信息大于设定的第一负载阈值的情况下,表示网关设备的负载较大,需要更多的网关设备与第一消息通道建立长连接,以减少已经建立连接的网关设备的负载信息,则可以根据当前与第一消息通道建立长连接的网关设备的负载信息与第一负载阈值的差值,确定第一数量,根据该第一数量,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第一网关设备,新建第一消息通道与第一网关设备之间的绑定关系。其中,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第一网关设备的实施方式并不限定。例如,可以根据第一网关分组中尚未与第一消息通道建立绑定关系的网关设备的负载信息,从尚未与第一消息通道建立绑定关系的网关设备中选择负载较低的网关设备作为第一网关设备,或者,可以根据第一网关分组中尚未与第一消息通道建立绑定关系的网关设备的QoS数据,从尚未与第一消息通道建立绑定关系的网关设备中选择QoS数据较高的网关设备作为第一网关设备。
情况C4:预先设定网关设备的第二负载阈值,在当前与第一消息通道建立长连接的网关设备的负载信息小于设定的第二负载阈值的情况下,表示该网关设备的负载较小,可以将断开该网关设备与第一消息通道之间的长连接,以节省资源,则可以根据第一负载阈值与当前与第一消息通道建立长连接的网关设备的负载信息的差值,确定待删除的网关设备对应的第二数量,根据第二数量,从第一网关分组中已与第一消息通道建立绑定关系的网关设备中选择第二网关设备,断开第一消息通道与第二网关设备之间的长连接,删除第一消息通道与第二网关设备之间的绑定关系。其中,从第一网关分组中已与第一消息通道建立绑定关系的网关设备中选择第二网关设备的方式并不限定,可以根据网关设备的负载信息,从已与第一消息通道建立绑定关系的网关设备中选择负载较小的网关设备作为第二网关设备,或者根据网关设备的服务质量,从已与第一消息通道建立绑定关系的网关设备中选择服务质量较差的网关设备作为第二网关设备。
在上述实施例中,从第一消息通道的维度对再分配过程进行了示例性说明。在一可选实施例中,还可以针对第一网关分组进行扩缩容。具体地,可以获取第一网关分组的负载信息,根据第一网关分组的负载信息对第一网关分组中的网关设备进行扩缩容。其中,第一网关分组的负载信息是指第一网关分组中各网关设备的负载信息之和,除此之外,第一网关分组可能对应多个消息通道,从消息通道的维度可以认为第一网关分组的负载信息是与其对接的各消息通道产生的负载信息之和。针对第一网关分组的负载信息,在第一网关分组的负载信息大于第三负载阈值的情况下,表示第一网关分组中的网关设备数量不足,则可以为第一网关分组扩充网关设备的数量,从其它网关分组或网关资源池中选择第四网关设备,将第四网关设备的地址信息添加至第一地址列表中,第四网关设备是第一网关分组中尚未与第一消息通道建立绑定关系的网关设备。其中,需要确定致使为第一网关分组进行扩容的消息通道是哪个消息通道,若致使第一网关分组进行扩容的消息通道为第一消息通道,则从其它网关分组或网关资源池中选择第四网关设备,并新建第一消息通道与第四网关设备之间的绑定关系。在第一网关分组的负载信息小于第四负载阈值的情况下,表示第一网关分组中网关设备处于低负载状态,网关设备的数量充足,则从第一网关分组中选择第五网关设备,断开第五网关设备已经建立的长连接,删除第五网关设备已经建立的绑定关系,并将第五网关设备的地址信息从第一地址列表中删除。其中,从第一网关分组中选择第五网关设备的时候,根据各消息通道对应的负载信息,选择负载较小的消息通道,若负载较小的消息通道为第一消息通道,则从与第一消息通道对接的网关设备中,选择第五网关设备,断开第五网关设备与第一消息通道的长连接,并删除第一消息通道与第五网关设备之间的绑定关系。
在本实施例中,第一网关分组可以对接不同的消息服务类型的消息,例如,不同的消息服务类型可以包含但不限于:金融、物流、营销等类型,为了实现消息服务的隔离调度,将第一网关分组划分为多个虚拟化分组,每个虚拟化分组包括中包含至少一台网关设备,每种虚拟化分组对应至少一种消息服务类型,第一消息通道可以对应一种或多种消息服务类型,则第一消息通道可以对应一个或多个虚拟化分组,根据第一消息通道对应的第一消息服务类型,确定对应第一消息服务类型的第一虚拟化分组,动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系,通过虚拟化分组对消息服务进行隔离调度,实现网关集群能力的最大化,保障信息安全。在图4中以第一网关分组划分为3个虚拟化分组为例进行图示,但并不限于此。
其中,在进行虚拟化分组之前,可以获取第一网关分组中包含的各网关设备的信息,例如,网关设备的IP地址信息、负载信息、QPS以及QoS等,根据第一网关分组中包含的各网关设备的信息,对第一网关分组中包含的各网关设备进行虚拟化分组,并配置虚拟化分组的标识、对外接口以及所服务的消息服务类型等信息。其中,对外接口包括虚拟化分组的对外接口(如,虚拟化分组的版本)和动态路由的对外路由接口。当有消息通道请求上线的时候,建立消息通道与虚拟化分组之间的绑定关系,将为虚拟化分组配置的信息下发至虚拟化分组的管理模块,每个网关设备所属虚拟化分组的标识信息会下发至各网关设备,并会将虚拟化分组的对外路由接口、对应的消息服务类型、虚拟化分组中包含哪些网关设备等信息提供给消息服务设备,以供消息服务设备据此建立第一地址列表,第一地址列表中存储有第一网关分组中各虚拟化分组中包含的各网关设备的地址信息。
在一可选实施例中,可以针对第一网关分组中的第一虚拟化分组进行扩缩容,具体地:根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容;根据扩缩容结果,动态调整第一消息通道与第一虚拟化分组中网关设备之间的绑定关系。其中,虚拟化分组的负载信息可以是该虚拟化分组中各网关设备的负载信息之和,即虚拟化分组的全局负载信息,也可以是虚拟化分组中各网关设备的负载信息;多个虚拟化分组的服务质量数据,可以是该虚拟化分组的全局服务质量数据,也可以是该虚拟化分组中各网关设备的服务质量数据。
可选地,根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容的实施方式,主要包括以下三种:
实施方式D1:根据多个虚拟化分组的全局负载信息,从多个虚拟化分组中选择第二虚拟化分组,例如,将多个虚拟化分组中,全局负载最小的虚拟化分组作为第二虚拟化分组;根据第二虚拟化分组中各网关设备的负载信息,从第二虚拟化分组中选择第六网关设备,断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
实施方式D2:根据多个虚拟化分组的服务质量数据,从多个虚拟化分组中选择第二虚拟化分组,例如,将多个虚拟化分组中,全局服务质量较优的虚拟化分组作为第二虚拟化分组;根据第二虚拟化分组中各网关设备的服务质量数据,从第二虚拟化分组中选择第六网关设备,断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
实施方式D3:根据多个虚拟化分组的负载信息和服务质量数据,从中选择第二虚拟化分组,例如,先根据多个虚拟化分组的全局负载信息,筛选出全局负载信息小于设定全局负载阈值的候选虚拟化分组,根据候选虚拟化分组的全局服务质量数据,从候选虚拟化分组中选择全局服务质量数据大于设定全局服务质量数据阈值的虚拟化分组作为第二虚拟化分组;根据第二虚拟化分组中各网关设备的负载信息和服务质量数据,从第二虚拟化分组中选择第六网关设备,例如,根据第二虚拟化分组中各网关设备的负载信息,选择负载信息小于设定第五负载阈值的网关设备作为候选网关设备,根据候选网关设备的服务质量数据,从候选网关设备中选择服务质量数据超过设定服务质量数据阈值的网关设备作为第六网关设备;断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
针对上述实施方式D1-D3,在多个虚拟化分组中的部分或者全部虚拟化分组之间可以共享存储资源的情况下,根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容的实施方式,包括:根据多个虚拟化分组的负载信息和/或服务质量数据,结合多个虚拟化分组对存储资源的共享情况,从多个虚拟化分组中选择与第一虚拟化分组共享存储资源且对应第一消息服务类型的第三虚拟化分组;断开第一消息通道与第一虚拟化分组中网关设备之间的长连接,将第一消息通道迁移至第三虚拟化分组中,并动态建立第一消息通道与第三虚拟化分组中网关设备之间的绑定关系。
上述实施例对第一虚拟化分组进行扩缩容的实施方式进行描述,在本申请下述实施例中,对虚拟化分组中的网关设备进行预分配和再分配的实施方式进行描述。
在一可选实施例中,对第一虚拟化分组中的网关设备进行再分配的实施方式包括:在第一网关分组中包括至少一个虚拟化分组的情况下,针对第一虚拟化分组,根据第一虚拟化分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的数量或负载信息;根据当前与第一消息通道建立长连接的网关设备的数量或负载信息,动态地在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系。具体地,包括如下几种实施方式。
实施方式F1:预先设定第三数量阈值,该第三数量阈值小于或等于第一虚拟化分组在初始状态包含的网关设备的数量,在第一虚拟化分组中,当前与第一消息通道建立长连接的网关设备的数量小于设定的第三数量阈值的情况下,根据第三数量阈值与当前与第一消息通道建立长连接的网关设备的数量的差值,确定第三数量,根据第三数量,从尚未与第一消息通道建立绑定关系的网关设备中选择第七网关设备,新建第一消息通道与第七网关设备之间的绑定关系。
可选地,在第一虚拟化分组中,若当前与第一消息通道建立长连接的网关设备中出现被销毁的第九网关设备,确定第九网关设备的数量与当前与第一消息通道建立绑定关系的网关设备的数量的比值;在该比值大于第一比例阈值时,确定当前与第一消息通道建立长连接的网关设备的数量小于设定的第三数量阈值,确定第三数量,根据该第三数量,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第七网关设备,新建第一消息通道与第七网关设备之间的绑定关系。其中,第一比例阈值可以是70%、80%或者90%。进一步,在该比值大于第二比例阈值且小于第一比例阈值时,可以对外发出预警信息,以供管控设备的工作人员对第三网络设备进行修复。其中,第二比例阈值可以是40%或50%等。
实施方式F2:在第一虚拟化分组中,当前与第一消息通道建立长连接的网关设备的数量大于设定的第四数量阈值的情况下,根据当前与第一消息通道建立长连接的网关设备的数量与第四数量阈值的差值,确定第四数量,根据第四数量,从第一网关分组中已与第一消息通道建立绑定关系的网关设备中选择第八网关设备,断开第一消息通道与第八网关设备之间的长连接,删除第一消息通道与第八网关设备之间的绑定关系。
实施方式F3:在第一虚拟化分组中,当前与第一消息通道建立长连接的网关设备的负载信息大于设定的第六负载阈值的情况下,根据当前与第一消息通道建立长连接的网关设备的负载信息与第六负载阈值的差值,确定第三数量,根据第三数量,从第一网关分组中尚未与第一消息通道建立绑定关系的网关设备中选择第七网关设备,新建第一消息通道与第七网关设备之间的绑定关系;
实施方式F4:在第一虚拟化分组中,当前与第一消息通道建立长连接的网关设备的负载信息小于设定的第七负载阈值的情况下,根据第七负载阈值与当前与第一消息通道建立长连接的网关设备的负载信息的差值,确定第四数量,根据第四数量,从第一网关分组中已与第一消息通道建立绑定关系的网关设备中选择第八网关设备,断开第一消息通道与第八网关设备之间的长连接,删除第一消息通道与第八网关设备之间的绑定关系。
在一可选实施例中,管控设备可根据第一网关分组中各网关设备的状态变化信息,动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系,除此之外,在动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系之前,管控设备,还可以为第一消息通道预分配第一网关分组中的多个虚拟化分组中的网关设备。具体地:响应第一消息通道的上线请求,确定第一消息通道支持的最大连接数M,以及第一消息通道与第一虚拟化分组之间的最大连接数S,S为正整数,且S<M。其中,确定第一消息通道与第一虚拟化分组之间的最大连接数S的实施方式并不限定,例如,可以根据第一分组中包含的多个虚拟化分组的数量,确定第一消息通道与每个虚拟化分组之间的连接数,或者,可以根据第一分组中包含的多个虚拟化分组的负载信息和/服务质量数据,确定第一消息通道与第一虚拟化分组之间的最大连接数S。初次之外,还可以预先设定第一虚拟化分组在初始状态包含的网关设备的总数T,T是正整数,T<N。可以判断第一消息通道与第一虚拟化分组之间的最大连接数S是否小于第一虚拟化分组在初始状态包含的网关设备的总数T;若S≥T,则新建第一虚拟化分组中的全部网关设备与第一消息通道之间的绑定关系;若S<T,则在初始阶段,采用预分配方式,在第一消息通道与第一虚拟化分组中S台网关设备之间建立绑定关系。
可选地,管控设备在第一消息通道与第一虚拟化分组中的S台网关设备之间建立绑定关系,具体包括:第一虚拟化分组对应有第二地址列表,第二地址列表中存储有第一虚拟化分组中当前包含的各网关设备的地址信息;将第二地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定列表环中的S个地址信息;在第一消息通道与S个地址信息对应的S台网关设备之间建立绑定关系。
在一可选实施例中,在上述实施例中,从第一消息通道的维度对虚拟化分组中的网关设备进行预分配过程进行了示例性说明。第一虚拟化分组的负载信息是指第一虚拟化分组中各网关设备的负载信息之和,除此之外,第一虚拟化分组可能对应多个消息通道,从消息通道的维度可以认为第一虚拟化分组的负载信息是与其对接的各消息通道产生的负载信息之和。在第一虚拟化分组的负载信息大于第八负载阈值的情况下,从其它虚拟化分组选择第九网关设备,将第九网关设备的地址信息添加至第一虚拟化分组对应的第二地址列表中;其中,需要确定致使为第一虚拟化分组进行扩容的消息通道是哪个消息通道,若致使第一虚拟化分组进行扩容的消息通道为第一消息通道,则从其它虚拟化分组中选择第九网关设备,新建第一消息通道与第九网关设备之间的绑定关系。在第一虚拟化分组的负载信息小于第九负载阈值的情况下,从第一虚拟化分组中选择第十网关设备,断开第十网关设备已经建立的长连接,删除第十网关设备已经建立的绑定关系,并将第十网关设备的地址信息从第二地址列表中删除。其中,从第一虚拟化分组中选择第十网关设备的时候,根据各消息通道对应的负载信息,选择负载较小的消息通道,若负载较小的消息通道为第一消息通道,则从与第一消息通道对接的网关设备中,选择第十网关设备,断开第十网关设备与第一消息通道的长连接,并删除第一消息通道与第十网关设备之间的绑定关系。
图2为本申请实例性实施例提供的另一种消息处理***的结构示意图,在图2中主要展示了管控设备101的一种内部实现结构,该内部实现结构仅为示例,并不限于此。管控设备101包括通道分配模块和连接管理模块;通道分配模块进一步可以包括预分配模块、再分配模块、健康检测模块以及状态机模块;连接管理模块包括:地址信息库(IP地址库)、配置中心、订阅中心以及任务引擎。图2中除了包括管控设备101的内部实现结构之外,还包括:消息服务设备103、网关集群102以及供应商或运营商。其中,消息服务设备103包括路由调度模块。
在图2给出的管控设备的内部实现结构中,预分配模块用于在初始阶段,采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系,具体可参见“实施方式B1-B2”的具体实现,在此不再赘述。预分配模块得到第一消息通道与第一网关分组中M台网关设备之间建立绑定关系之后,再分配模块可按需动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。健康检测模块用于监测管控设备与第一网关分组中的网关设备建立心跳连接,并基于心跳连接接收第一网关分组中各网关设备上报的心跳消息,心跳消息包括对应网关设备的状态变化信息,该状态变化信息至少包括:连接状态信息、负载信息、QoS、QPS数据中的至少一种。状态机模块用于实现对每个长连接的事件管理,并且能够对长连接实现运行态的实时监测和管控。
其中,采用预分配的方式,为第一消息通道分配网关设备,建立第一消息通道与第一网关分组中网关设备的绑定关系,降低了分配网关设备的复杂度,通过相对固定的绑定关系来提升连接的高可用性,而采用相对轻量的策略(如再分配)就可以实现绑定关系的动态变更,提高***的稳定性。其中,基于配置中心实现连接发现和订阅管理,解决了对连接状态的管理问题,通过定义连接的状态机和任务引擎实现对每个连接的事件管理,并能够对连接实现运行态的实时监测和管控。其中,基于连接管理模块实现路由调度策略,通过路由调度策略解决上游调度网关设备时的连接寻址问题,并基于连接发现实现路由信息的实时变更和重试等路由调度策略。
图2中,连接管理模块中的配置中心主要用于发现消息通道与网关设备之间状态变化信息,例如,通过心跳检测对消息通道与网关设备之间的长连接进行探活。对于不同的状态变化信息,配置中心会进行不同的处理操作,下面具体说明:
实施方式G1:如果状态变化信息表示第一消息通道与第一虚拟化分组中的网关设备建立连接过程中,配置中心不会新增该连接记录,消息服务设备中的路由调度模块无法识别该网关设备的地址信息(如IP地址),当建连成功之后,配置中心才会正式新增该连接记录,并通知路由调度模块识别该地址信息,并将该地址信息添加至路由信息中。
实施方式G2:如果状态变化信息表示第一消息通道与第一虚拟化分组中的网关设备断开连接,配置中心会删除该连接记录,并通知路由调度模块从路由信息中移除该地址信息。
实施方式G3:如果状态变化信息表示第一消息通道与第一虚拟化分组中的网关设备重新建立连接,配置中心会按照先断连再建连的逻辑处理,对应的路由调度模块也会实时更新路由信息。
实施方式G4:如果状态变化信息表示第一消息通道与第一虚拟化分组中的网关设备存在连接异常情况,配置中心无法通过心跳检测进行探活,配置中心会将无心跳的连接即时删除,并通知路由调度模块从路由信息中移除该无心跳的地址信息。
其中,图2还包括:连接于消息服务设备与网关集群中各网关设备之间的会话检测模块,在图2中,该会话检测模块连接于路由调度模块和网关集群中的网关设备之间。会话检测模块,用于根据管控设备(如配置中心)下发的第一消息通道当前对应的路由信息,更新第一消息通道和当前与其建立绑定关系的网关设备之间的长连接的会话状态,并将更新后的会话状态同步给消息服务设备中的路由调度模块,以使路由调度模块获取第一消息通道当前对应的路由信息。会话检测模块作为路由调度模块与网关设备之间的中间代理,在每个消息通道的所有连接都建立成功之后,管控设备将该消息通道的路由信息通过会话检测模块下发给路由调度模块,实现路由信息的更新与同步,保证及时性。
在图2中,消息服务设备103在启动后,可以加载并启动路由调度模块,目标消息通过路由调度模块进行下发,由路由调度模块根据路由信息,对长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端。
其中,消息服务设备启动时会获取加载网关设备上线使用的路由通道,如果是自定义连接数的路由通道,还会调用配置中心获取路由通道的路由地址信息(如IP地址),并进行路由调度策略的路由解析,如图2所示。其中,路由调度模块会将消息通道对应的路由信息与第一地址列表进行交集计算,生成路由调度模块可调度IP地址库,当有一条消息进行路由调度时,调度策略会依赖可调度IP地址库进行调度。
图3为本申请实例性实施例提供的又一种消息处理***的结构示意图,在图3中主要展示了管控设备101和网关集群102的一种内部实现结构,该内部实现结构仅为示例,并不限于此。如图3所示,以网关集群102包含第一网关分组中的两个虚拟化分组为例进行图示,但并不限于此。如图3所示,管控设备101包括分组管理模块和数据中心模块,分组管理模块用于实现虚拟化配置、通道映射、资源管控以及隔离管控等,数据中心模块用于实现健康检测、容器信息库、弹性管理以及容器删除(如容器驱赶)等。
在实现对第一网关分组中的网关设备进行虚拟化分组的过程中,主要包括以下步骤:
(1)在初始阶段,通过预分配为第一消息通道和虚拟化分组中的网关设备建立绑定关系,在后续阶段,采用再分配的方式,按需动态地在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。进一步,虚拟化分组中的网关设备向管控设备上报状态变化信息,状态变化信息包括:IP地址信息、负载信息或QoS等,根据第一网关分组中各网关设备的状态变化信息,动态地在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。
(2)虚拟化分组支持对外接口(如虚拟分组版本)的配置、支持动态路由的配置以及对外路由接口配置等,还可以对虚拟化分组进行资源管控,例如指定虚拟化分组的中间件、数据库或缓存等存储资源。
(3)基于数据中心的容器信息库,为虚拟化分组中的网关设备与消息通道建立绑定关系(如图3中的通道映射),绑定关系表示网关设备与消息通道之间的对应关系,建立绑定关系的方法可参见实施方式B1和实施方式B2。
(4)虚拟化分组中的网关设备启动时,从管控设备获取该网关设备与消息通道的绑定关系,绑定关系指向的消息通道建立连接关系,并在消息通道的绑定关系发生变化时,对虚拟化分组中的网关设备进行新增或变更。
(5)分组管理模块支持虚拟化分组之间的隔离调度,支持消息发送过程中的重试、异常、超时等异常情况下的补偿逻辑,并隔离不同虚拟化分组之间的相互影响。
图5为本申请示例性实施例提供的一种消息处理方法,如图5所示,该方法包括:
501、在第一消息通道对接网关集群中的第一网关分组的情况下,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系;第一网关分组是网关集群中的任一网关分组;
502、在绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接;
503、将第一消息通道对应的路由信息同步给消息服务设备,路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,以供消息服务设备从当前与第一消息通道建立长连接的网关设备中寻址目标网关设备并经目标网关设备将目标消息发送至第一消息通道中。
在一可选实施例中,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系之前,还包括:响应第一消息通道的上线请求,确定第一消息通道支持的最大连接数M小于第一网关分组在初始状态包含的网关设备的总数N;在初始阶段,采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系;M、N是正整数,且M<N。
在一可选实施例中,采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系,包括:将第一地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定列表环中的M个地址信息;在第一消息通道与M个地址信息对应的M台网关设备之间建立绑定关系;第一地址列表中存储有第一网关分组中当前包含的各网关设备的地址信息。
在一可选实施例中,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系,包括:根据第一网关分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的数量或负载信息;根据当前与第一消息通道建立长连接的网关设备的数量或负载信息,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。
在一可选实施例中,还包括:若当前与第一消息通道建立长连接的网关设备中出现被销毁的第三网关设备,确定第三网关设备的数量和当前与第一消息通道建立绑定关系的网关设备的数量的比值;在比值大于第一比例阈值时,确定当前与第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值。
在一可选实施例中,还包括:在第一网关分组的负载信息大于第三负载阈值的情况下,从其它网关分组或网关资源池中选择第四网关设备,将第四网关设备的地址信息添加至第一地址列表中;在第一网关分组的负载信息小于第四负载阈值的情况下,从第一网关分组中选择第五网关设备,断开第五网关设备已经建立的长连接,删除第五网关设备已经建立的绑定关系,并将第五网关设备的地址信息从第一地址列表中删除。
在一可选实施例中,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系,包括:将第一网关分组划分为多个虚拟化分组,每个虚拟化分组中包含至少一台网关设备,每种虚拟化分组对应至少一种消息服务类型;根据第一消息通道对应的第一消息服务类型,确定对应第一消息服务类型的第一虚拟化分组,动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系。
在一可选实施例中,还包括:根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容;根据扩缩容结果,动态调整第一消息通道与第一虚拟化分组中网关设备之间的绑定关系。
在一可选实施例中,根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容,包括:根据多个虚拟化分组的负载信息和/或服务质量数据,从中选择第二虚拟化分组;从第二虚拟化分组中选择第六网关设备,断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
在一可选实施例中,根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容,包括:根据多个虚拟化分组的负载信息和/或服务质量数据,结合多个虚拟化分组对存储资源的共享情况,从中选择与第一虚拟化分组共享存储资源且对应第一消息服务类型的第三虚拟化分组;断开第一消息通道与第一虚拟化分组中网关设备之间的长连接,将第一消息通道迁移至第三虚拟化分组中,并动态建立第一消息通道与第三虚拟化分组中网关设备之间的绑定关系。
图6为本申请示例性实施例提供的另一种消息处理方法的流程示意图,如图6所示,该方法包括:
601、获取管控设备发送的第一消息通道对应的路由信息,第一消息通道对接第一网关分组,路由信息包括第一网关分组中当前与第一消息通道建立长连接的网关设备的地址信息,路由信息随第一消息通道与第一网关分组中网关设备之间绑定关系的动态变化而变化;
602、根据路由信息和预先维护的第一地址列表,对长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端,第一地址列表中存储有第一网关分组中各网关设备的地址信息。
本申请实施例提供的消息处理方法,针对任一消息通道,在该消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该消息通道的绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,绑定关系可以动态变更,可以在消息通道与网关设备之间按需建立连接,节约连接资源,解决在消息通道支持的连接数大于网关分组中网关设备数量的情况下,连接资源浪费的问题,而且路由信息会随绑定关系的变化及时更新,消息服务设备基于该动态更新的路由信息可直接寻址到网关设备,在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤501至步骤503的执行主体可以为设备A;又比如,步骤501和502的执行主体可以为设备A,步骤503的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如501、502等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图7a为本申请示例性实施例提供的一种消息处理装置的结构示意图。该消息处理装置可应用于上述实施例中的管控设备,但不限于此。如图7a所示,该装置包括:关系建立模块71、连接发现模块72和路由同步模块73。
关系建立模块71,用于在第一消息通道对接网关集群中的第一网关分组的情况下,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系;第一网关分组是网关集群中的任一网关分组;关于网关集群、消息通道、网关分组的定义以及消息通道与网关分组之间的对应关系可参见前述实施例,在此不再赘述。
连接发现模块72,与关系建立模块71连接,用于在绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接。
路由同步模块73,用于将第一消息通道对应的路由信息同步给消息服务设备,路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,以供消息服务设备从当前与第一消息通道建立长连接的网关设备中寻址目标网关设备并经目标网关设备将目标消息发送至第一消息通道中,进而使第一消息通道将目标消息发送至目标终端。
在一可选实施例中,关系建立模块71在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系之前,还用于:响应第一消息通道的上线请求,确定第一消息通道支持的最大连接数M小于第一网关分组在初始状态包含的网关设备的总数N;在初始阶段,采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系;M、N是正整数,且M<N。
在一可选实施例中,关系建立模块71在采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系时,具体用于:将第一地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定列表环中的M个地址信息;在第一消息通道与M个地址信息对应的M台网关设备之间建立绑定关系;第一地址列表中存储有第一网关分组中当前包含的各网关设备的地址信息。
在一可选实施例中,关系建立模块71在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系时,具体用于:根据第一网关分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的数量或负载信息;根据当前与第一消息通道建立长连接的网关设备的数量或负载信息,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。
在一可选实施例中,关系建立模块71还用于:若当前与第一消息通道建立长连接的网关设备中出现被销毁的第三网关设备,确定第三网关设备的数量和当前与第一消息通道建立绑定关系的网关设备的数量的比值;在比值大于第一比例阈值时,确定当前与第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值。
在一可选实施例中关系建立模块71还用于:在第一网关分组的负载信息大于第三负载阈值的情况下,从其它网关分组或网关资源池中选择第四网关设备,将第四网关设备的地址信息添加至第一地址列表中;在第一网关分组的负载信息小于第四负载阈值的情况下,从第一网关分组中选择第五网关设备,断开第五网关设备已经建立的长连接,删除第五网关设备已经建立的绑定关系,并将第五网关设备的地址信息从第一地址列表中删除。
在一可选实施例中,关系建立模块71在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系时,具体用于:将第一网关分组划分为多个虚拟化分组,每个虚拟化分组中包含至少一台网关设备,每种虚拟化分组对应至少一种消息服务类型;根据第一消息通道对应的第一消息服务类型,确定对应第一消息服务类型的第一虚拟化分组,动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系。
在一可选实施例中,关系建立模块71还用于:根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容;根据扩缩容结果,动态调整第一消息通道与第一虚拟化分组中网关设备之间的绑定关系。
在一可选实施例中,关系建立模块71在根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容时,具体用于:根据多个虚拟化分组的负载信息和/或服务质量数据,从中选择第二虚拟化分组;从第二虚拟化分组中选择第六网关设备,断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
在一可选实施例中,关系建立模块71在根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容时,具体用于:根据多个虚拟化分组的负载信息和/或服务质量数据,结合多个虚拟化分组对存储资源的共享情况,从中选择与第一虚拟化分组共享存储资源且对应第一消息服务类型的第三虚拟化分组;断开第一消息通道与第一虚拟化分组中网关设备之间的长连接,将第一消息通道迁移至第三虚拟化分组中,并动态建立第一消息通道与第三虚拟化分组中网关设备之间的绑定关系。
图7b为本申请示例性实施例提供的一种消息处理设备的结构示意图。本实施例的消息处理设备可作为前述实施例中的管控设备实现,但不限于此。如图7b所示,该设备包括:存储器74和处理器75。
存储器74,用于存储计算机程序,并可被配置为存储其它各种数据以支持在消息处理设备上的操作。这些数据的示例包括用于在消息处理设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器74可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器75,与存储器74耦合,用于执行存储器74中的计算机程序,以用于:在第一消息通道对接网关集群中的第一网关分组的情况下,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系;第一网关分组是网关集群中的任一网关分组;在绑定关系发生变化的情况下,确定第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接;将第一消息通道对应的路由信息同步给消息服务设备,路由信息包括当前与第一消息通道建立长连接的网关设备的地址信息,以供消息服务设备从当前与第一消息通道建立长连接的网关设备中寻址目标网关设备并经目标网关设备将目标消息发送至第一消息通道中,进而使第一消息通道将目标消息发送至目标终端。关于网关集群、消息通道、网关分组的定义以及消息通道与网关分组之间的对应关系可参见前述实施例,在此不再赘述。
在一可选实施例中,处理器75在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系之前,还用于:响应第一消息通道的上线请求,确定第一消息通道支持的最大连接数M小于第一网关分组在初始状态包含的网关设备的总数N;在初始阶段,采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系;M、N是正整数,且M<N。
在一可选实施例中,处理器75在采用预分配方式,在第一消息通道与第一网关分组中M台网关设备之间建立绑定关系时,具体用于:将第一地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定列表环中的M个地址信息;在第一消息通道与M个地址信息对应的M台网关设备之间建立绑定关系;第一地址列表中存储有第一网关分组中当前包含的各网关设备的地址信息。
在一可选实施例中,处理器75在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系时,具体用于:根据第一网关分组中各网关设备的状态变化信息,确定当前与第一消息通道建立长连接的网关设备的数量或负载信息;根据当前与第一消息通道建立长连接的网关设备的数量或负载信息,动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系。
在一可选实施例中,处理器75还用于:若当前与第一消息通道建立长连接的网关设备中出现被销毁的第三网关设备,确定第三网关设备的数量和当前与第一消息通道建立绑定关系的网关设备的数量的比值;在比值大于第一比例阈值时,确定当前与第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值。
在一可选实施例中,处理器75还用于:在第一网关分组的负载信息大于第三负载阈值的情况下,从其它网关分组或网关资源池中选择第四网关设备,将第四网关设备的地址信息添加至第一地址列表中;在第一网关分组的负载信息小于第四负载阈值的情况下,从第一网关分组中选择第五网关设备,断开第五网关设备已经建立的长连接,删除第五网关设备已经建立的绑定关系,并将第五网关设备的地址信息从第一地址列表中删除。
在一可选实施例中,处理器75在动态在第一消息通道与第一网关分组中的网关设备之间建立绑定关系时,具体用于:将第一网关分组划分为多个虚拟化分组,每个虚拟化分组中包含至少一台网关设备,每种虚拟化分组对应至少一种消息服务类型;根据第一消息通道对应的第一消息服务类型,确定对应第一消息服务类型的第一虚拟化分组,动态在第一消息通道与第一虚拟化分组中的网关设备之间建立绑定关系。
在一可选实施例中,处理器75还用于:根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容;根据扩缩容结果,动态调整第一消息通道与第一虚拟化分组中网关设备之间的绑定关系。
在一可选实施例中,处理器75在根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容时,具体用于:根据多个虚拟化分组的负载信息和/或服务质量数据,从中选择第二虚拟化分组;从第二虚拟化分组中选择第六网关设备,断开第六网关设备已经建立的长连接,删除第六网关设备已建立的绑定关系,并将第六网关设备分配至第一虚拟化分组中,以实现对第一虚拟化分组的扩容。
在一可选实施例中,处理器75在根据多个虚拟化分组的负载信息和/或服务质量数据,对第一虚拟化分组进行扩缩容时,具体用于:根据多个虚拟化分组的负载信息和/或服务质量数据,结合多个虚拟化分组对存储资源的共享情况,从中选择与第一虚拟化分组共享存储资源且对应第一消息服务类型的第三虚拟化分组;断开第一消息通道与第一虚拟化分组中网关设备之间的长连接,将第一消息通道迁移至第三虚拟化分组中,并动态建立第一消息通道与第三虚拟化分组中网关设备之间的绑定关系。
本申请实施例提供的消息处理设备,针对任一消息通道,在该消息通道对接某个网关分组的情况下,可动态地在该任一消息通道与其对接的网关分组中的网关设备之间建立绑定关系,在该消息通道的绑定关系发生变化的情况下,将该消息通道的路由信息同步给消息服务设备,消息服务设备基于该路由信息,经由目标网关设备将目标信息提供给该消息通道,由该消息通道将目标消息发送给目标终端。整个过程中,绑定关系可以动态变更,可以在消息通道与网关设备之间按需建立连接,节约连接资源,解决在消息通道支持的连接数大于网关分组中网关设备数量的情况下,连接资源浪费的问题,而且路由信息会随绑定关系的变化及时更新,消息服务设备基于该动态更新的路由信息可直接寻址到网关设备,在消息通道支持的连接数小于网关分组中的网关设备数量的情况下,无需将消息通道在不同网关设备之间的断连和重连操作,可大大减少消息发送延时。
进一步,如图7b所示,该消息处理设备还包括:通信组件76、显示器77、电源组件78、音频组件79等其它组件。图7b中仅示意性给出部分组件,并不意味着消息处理设备只包括图7b所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时,致使处理器能够实现上述图5所示方法实施例中的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述图5所示方法实施例中的各步骤。
本申请实施例还提供一种消息处理设备,该消息处理设备的实现结构与图7b所示消息处理设备的实现结构相同或类似,可参照图7b所示消息处理设备的结构实现。本实施例的消息处理设备可作为前述实施例中的消息服务设备实现,但不限于此。本实施例提供的消息处理设备与图7b所示实施例中消息处理设备的区别主要在于:处理器执行存储器中存储的计算机程序所实现的功能不同。对本实施例提供的消息处理设备来说,其处理器执行存储器中存储的计算机程序,可用于:获取管控设备发送的第一消息通道对应的路由信息,第一消息通道对接第一网关分组,路由信息包括第一网关分组中当前与第一消息通道建立长连接的网关设备的地址信息,路由信息随第一消息通道与第一网关分组中网关设备之间绑定关系的动态变化而变化;根据路由信息和预先维护的第一地址列表,对长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据目标网关设备的地址信息,经目标网关设备将目标消息发送至第一消息通道中,以通过第一消息通道将目标消息发送至目标终端,第一地址列表中存储有第一网关分组中各网关设备的地址信息。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时,致使处理器能够实现上述图6所示方法实施例中的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述图6所示方法实施例中的各步骤。
上述图7b中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图7b中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图7b中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图7b中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种消息处理***,其特征在于,包括:管控设备、网关集群和消息服务设备,所述网关集群包括至少一个网关分组,每个网关分组用于与至少一个消息通道对接;
所述管控设备,用于在第一消息通道对接第一网关分组的情况下,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系,并在所述绑定关系发生变化的情况下,确定所述第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接,将所述第一消息通道对应的路由信息同步给所述消息服务设备,所述路由信息包括当前与所述第一消息通道建立长连接的网关设备的地址信息,所述第一网关分组是任一网关分组;
所述消息服务设备,用于根据所述路由信息和第一地址列表,对所述长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据所述目标网关设备的地址信息,经所述目标网关设备将目标消息发送至所述第一消息通道中,以通过所述第一消息通道将所述目标消息发送至目标终端;所述第一地址列表中存储有所述第一网关分组中各网关设备的地址信息。
2.一种消息处理方法,其特征在于,包括:
在第一消息通道对接网关集群中的第一网关分组的情况下,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系;所述第一网关分组是网关集群中的任一网关分组;
在所述绑定关系发生变化的情况下,确定所述第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接;
将所述第一消息通道对应的路由信息同步给消息服务设备,所述路由信息包括当前与所述第一消息通道建立长连接的网关设备的地址信息,以供所述消息服务设备从当前与所述第一消息通道建立长连接的网关设备中寻址目标网关设备并经所述目标网关设备将目标消息发送至所述第一消息通道中。
3.根据权利要求2所述的方法,其特征在于,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系之前,还包括:
响应所述第一消息通道的上线请求,确定所述第一消息通道支持的最大连接数M小于所述第一网关分组在初始状态包含的网关设备的总数N;
在初始阶段,采用预分配方式,在所述第一消息通道与所述第一网关分组中M台网关设备之间建立绑定关系;M、N是正整数,且M<N。
4.根据权利要求3所述的方法,其特征在于,采用预分配方式,在所述第一消息通道与所述第一网关分组中M台网关设备之间建立绑定关系,包括:
将第一地址列表中的地址信息形成列表环,采用循环分配方式、哈希分配方式或随机分配方式,确定所述列表环中的M个地址信息;
在所述第一消息通道与所述M个地址信息对应的M台网关设备之间建立绑定关系;所述第一地址列表中存储有所述第一网关分组中当前包含的各网关设备的地址信息。
5.根据权利要求2所述的方法,其特征在于,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系,包括:
根据所述第一网关分组中各网关设备的状态变化信息,确定当前与所述第一消息通道建立长连接的网关设备的数量或负载信息;
根据当前与所述第一消息通道建立长连接的网关设备的数量或负载信息,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系。
6.根据权利要求2所述的方法,其特征在于,还包括:
若当前与所述第一消息通道建立长连接的网关设备中出现被销毁的第三网关设备,确定所述第三网关设备的数量和当前与所述第一消息通道建立绑定关系的网关设备的数量的比值;
在所述比值大于第一比例阈值时,确定当前与所述第一消息通道建立长连接的网关设备的数量小于设定的第一数量阈值。
7.根据权利要求2所述的方法,其特征在于,还包括:
在所述第一网关分组的负载信息大于第三负载阈值的情况下,从其它网关分组或网关资源池中选择第四网关设备,将所述第四网关设备的地址信息添加至第一地址列表中;
在所述第一网关分组的负载信息小于第四负载阈值的情况下,从所述第一网关分组中选择第五网关设备,断开所述第五网关设备已经建立的长连接,删除所述第五网关设备已经建立的绑定关系,并将所述第五网关设备的地址信息从所述第一地址列表中删除。
8.根据权利要求2-7任一项所述的方法,其特征在于,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系,包括:
将所述第一网关分组划分为多个虚拟化分组,每个虚拟化分组中包含至少一台网关设备,每种虚拟化分组对应至少一种消息服务类型;
根据所述第一消息通道对应的第一消息服务类型,确定对应所述第一消息服务类型的第一虚拟化分组,动态在所述第一消息通道与所述第一虚拟化分组中的网关设备之间建立绑定关系。
9.根据权利要求8所述的方法,其特征在于,还包括:
根据所述多个虚拟化分组的负载信息和/或服务质量数据,对所述第一虚拟化分组进行扩缩容;
根据扩缩容结果,动态调整所述第一消息通道与所述第一虚拟化分组中网关设备之间的绑定关系。
10.根据权利要求9所述的方法,其特征在于,根据所述多个虚拟化分组的负载信息和/或服务质量数据,对所述第一虚拟化分组进行扩缩容,包括:
根据所述多个虚拟化分组的负载信息和/或服务质量数据,从中选择第二虚拟化分组;
从所述第二虚拟化分组中选择第六网关设备,断开所述第六网关设备已经建立的长连接,删除所述第六网关设备已建立的绑定关系,并将所述第六网关设备分配至所述第一虚拟化分组中,以实现对所述第一虚拟化分组的扩容。
11.根据权利要求9所述的方法,其特征在于,根据所述多个虚拟化分组的负载信息和/或服务质量数据,对所述第一虚拟化分组进行扩缩容,包括:
根据所述多个虚拟化分组的负载信息和/或服务质量数据,结合所述多个虚拟化分组对存储资源的共享情况,从中选择与所述第一虚拟化分组共享存储资源且对应第一消息服务类型的第三虚拟化分组;
断开所述第一消息通道与所述第一虚拟化分组中网关设备之间的长连接,将所述第一消息通道迁移至所述第三虚拟化分组中,并动态建立所述第一消息通道与所述第三虚拟化分组中网关设备之间的绑定关系。
12.一种消息处理方法,其特征在于,包括:
获取管控设备发送的第一消息通道对应的路由信息,其中,所述第一消息通道对应的路由信息是所述管控设备在所述第一消息通道对接第一网关分组的情况下,动态在所述第一消息通道与所述第一网关分组中的网关设备之间建立绑定关系,并在所述绑定关系发生变化的情况下,确定所述第一消息通道和当前与其建立绑定关系的网关设备成功建立长连接的情况下发送的;所述路由信息包括所述第一网关分组中当前与所述第一消息通道建立长连接的网关设备的地址信息;
根据所述路由信息和预先维护的第一地址列表,对所述长连接对应的网关设备进行路由寻址,得到目标网关设备的地址信息,根据所述目标网关设备的地址信息,经所述目标网关设备将目标消息发送至所述第一消息通道中,以通过所述第一消息通道将所述目标消息发送至目标终端,所述第一地址列表中存储有所述第一网关分组中各网关设备的地址信息。
13.一种消息处理设备,其特征在于,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以实现权利要求2-12任一项所述方法中的步骤。
14.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求2-12任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068462.1A CN114095561B (zh) | 2022-01-20 | 2022-01-20 | 消息处理***和方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210068462.1A CN114095561B (zh) | 2022-01-20 | 2022-01-20 | 消息处理***和方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114095561A CN114095561A (zh) | 2022-02-25 |
CN114095561B true CN114095561B (zh) | 2022-07-08 |
Family
ID=80309090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210068462.1A Active CN114095561B (zh) | 2022-01-20 | 2022-01-20 | 消息处理***和方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095561B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483928A (zh) * | 2008-01-11 | 2009-07-15 | 华为技术有限公司 | 移动网络的数据连接的建立方法、移动网络及策略控制实体 |
US8108554B1 (en) * | 2002-05-16 | 2012-01-31 | F5 Networks, Inc. | Method and system for automatically mapping secure network address translations |
CN102761864A (zh) * | 2011-04-29 | 2012-10-31 | ***通信集团公司 | 一种数据传输的方法、***及设备 |
CN104702602A (zh) * | 2015-03-04 | 2015-06-10 | 南京邮电大学 | 基于sip实现集群网关动态创建通道和扩容的***和方法 |
US11140020B1 (en) * | 2018-03-01 | 2021-10-05 | Amazon Technologies, Inc. | Availability-enhancing gateways for network traffic in virtualized computing environments |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101330723B (zh) * | 2007-06-19 | 2012-12-12 | 华为技术有限公司 | 演进网络中隧道的建立方法及*** |
JP5203780B2 (ja) * | 2008-04-07 | 2013-06-05 | 株式会社日立製作所 | 移動無線通信システムおよびアクセスゲートウェイ |
US20120086581A1 (en) * | 2010-10-04 | 2012-04-12 | Measurement Specialties Inc. | Water monitoring system |
CN106686091A (zh) * | 2016-12-30 | 2017-05-17 | 广州尚融网络科技有限公司 | 一种虚拟通道控制方法及*** |
CN110417842B (zh) * | 2018-04-28 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 用于网关服务器的故障处理方法和装置 |
CN111565229B (zh) * | 2020-04-29 | 2020-11-27 | 创盛视联数码科技(北京)有限公司 | 一种基于Redis的通信***分布式方法 |
-
2022
- 2022-01-20 CN CN202210068462.1A patent/CN114095561B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108554B1 (en) * | 2002-05-16 | 2012-01-31 | F5 Networks, Inc. | Method and system for automatically mapping secure network address translations |
CN101483928A (zh) * | 2008-01-11 | 2009-07-15 | 华为技术有限公司 | 移动网络的数据连接的建立方法、移动网络及策略控制实体 |
CN102761864A (zh) * | 2011-04-29 | 2012-10-31 | ***通信集团公司 | 一种数据传输的方法、***及设备 |
CN104702602A (zh) * | 2015-03-04 | 2015-06-10 | 南京邮电大学 | 基于sip实现集群网关动态创建通道和扩容的***和方法 |
US11140020B1 (en) * | 2018-03-01 | 2021-10-05 | Amazon Technologies, Inc. | Availability-enhancing gateways for network traffic in virtualized computing environments |
Non-Patent Citations (2)
Title |
---|
杨溢 ; 王志良 ; 王鲁 ; 张富深.面向智能空间的异构网络同构化通信框架.《计算机科学》.2012, * |
陈文艺 ; 高婧 ; 杨辉.物联网网关实时双向通信模块化设计.《计算机工程与设计》.2021, * |
Also Published As
Publication number | Publication date |
---|---|
CN114095561A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113726846B (zh) | 边缘云***、资源调度方法、设备及存储介质 | |
CN113301078B (zh) | 网络***、服务部署与网络划分方法、设备及存储介质 | |
KR102140636B1 (ko) | Nfv를 통한 풀 기반 m2m 서비스 계층 구축 | |
CN111638935B (zh) | 镜像管理方法、网络***、设备以及存储介质 | |
CN113300899B (zh) | 网络能力开放方法、网络***、设备及存储介质 | |
CN113783922A (zh) | 负载均衡的方法、***和装置 | |
CN113301102A (zh) | 资源调度方法、设备、边缘云网络、程序产品及存储介质 | |
CN113301077A (zh) | 云计算服务部署与分流方法、***、设备及存储介质 | |
CN111800285A (zh) | 实例迁移方法和装置以及电子设备 | |
CN113301079B (zh) | 一种数据的获取方法、***、计算设备及存储介质 | |
CN113300865B (zh) | 管控方法、网络***、设备及存储介质 | |
CN113382032A (zh) | 云节点变更、网络扩展、服务提供方法、设备及介质 | |
CN113301587B (zh) | 节点管控方法、网络***、设备及存储介质 | |
CN112905338B (zh) | 计算资源自动分配方法及装置 | |
CN104955125B (zh) | 支持多种类型互联网接入的调度方法、终端、及*** | |
CN112953992B (zh) | 网络***、通信与组网方法、设备及存储介质 | |
CN114095561B (zh) | 消息处理***和方法、设备及存储介质 | |
CN113300866A (zh) | 节点能力管控方法、设备、***及存储介质 | |
CN114301909B (zh) | 边缘分布式管控***、方法、设备及存储介质 | |
CN103442257A (zh) | 一种流资源管理的实现方法、设备及*** | |
CN112104789B (zh) | 跨中心坐席自动切换方法、装置、设备及存储介质 | |
CN113783963B (zh) | 数据传输方法、服务器节点、网关设备、网络*** | |
CN105681262A (zh) | 一种交互消息分配方法及*** | |
CN112616143B (zh) | 一种分配通信号码的方法、装置、电子设备及存储介质 | |
CN112655185A (zh) | 软件定义网络中的服务分配的设备、方法和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070775 Country of ref document: HK |