一种分布式长连接消息路由方法以及系统与流程

摘要: 本发明涉及分布式通信,尤其涉及一种分布式长连接消息路由方法以及系统。背景技术:1、随着移动端、网页端、客服工作台和物联网终端等多类终端广泛接入业务系统,消息推送...
一种分布式长连接消息路由方法以及系统与流程

本发明涉及分布式通信,尤其涉及一种分布式长连接消息路由方法以及系统。

背景技术:

1、随着移动端、网页端、客服工作台和物联网终端等多类终端广泛接入业务系统,消息推送平台通常需要维持海量长连接。现有消息推送系统包括接入节点与消息下发节点,接入节点负责与各类终端建立并维护长连接,将连接会话缓存于本地内存,且各接入节点相互独立、不共享会话数据;消息下发节点接收业务系统消息后,依据消息携带的用户、设备、业务等标识字段检索在线会话,完成消息投递。

2、然而,现有基于消息推送系统的长连接消息路由方法在多终端、多身份、多业务会话的复杂分布式场景下存在如下问题:第一,固定单一维度的分组方式粒度粗放,无法适配商家端、用户端和客服端等多类终端差异化的隔离规则,造成消息隔离性不足,容易发生跨终端、跨业务会话的消息混杂,进而降低连接定位的准确性,引发消息误投、漏投问题。第二,分布式架构下各接入节点会话数据隔离独立,消息下发节点若存储全量会话状态,会占用大量系统资源,大幅降低系统水平扩展能力;若采用广播或轮询的检索方式,则会增加网络开销与投递延迟。

技术实现思路

1、本发明提供了一种分布式长连接消息路由方法以及系统,以提高连接定位的准确性,降低消息误投、漏投问题,提升分布式长连接消息路由系统的水平扩展能力,提升分布式场景下消息推送的实时性与业务响应效率。

2、根据本发明的一方面,提供了一种分布式长连接消息路由方法,应用于分布式长连接消息路由系统,所述分布式长连接消息路由系统包括接入节点、在线状态处理节点、消息下发节点和在线存储单元;该方法包括:

3、接入节点对接收到的长连接请求集合中的每一长连接请求进行鉴权,得到有效长连接请求集合,并生成有效长连接请求集合中每一有效长连接请求的长连接标识、连接会话及其对应的分组键;

4、在线状态处理节点根据有效长连接请求集合中每一有效长连接请求的长连接标识、连接所在接入节点地址及其对应的分组键,生成多个长连接请求组以及各长连接请求组内每一有效长连接标识对应的在线路由索引,并将生成的长连接请求组和在线路由索引存储至在线存储单元;

5、消息下发节点接收并解析业务系统下发的业务消息,得到消息终端标识和消息业务标识;

6、消息下发节点根据消息终端标识和消息业务标识,从在线存储单元存储的候选长连接请求组中确定目标长连接请求组;

7、消息下发节点根据目标长连接请求组内每一有效长连接标识对应的在线路由索引,确定目标长连接请求组内每一有效长连接标识对应的目标接入节点,以通过目标长连接请求组内每一有效长连接标识对应的目标接入节点向对应的目标终端投递业务消息。

8、根据本发明的另一方面,提供了一种分布式长连接消息路由系统,该系统包括接入节点、在线状态处理节点、消息下发节点和在线存储单元;其中,

9、接入节点,用于对接收到的长连接请求集合中的每一长连接请求进行鉴权,得到有效长连接请求集合,并生成有效长连接请求集合中每一有效长连接请求的长连接标识、连接会话及其对应的分组键;

10、在线状态处理节点,用于根据有效长连接请求集合中每一有效长连接请求的长连接标识、连接所在接入节点地址及其对应的分组键,生成多个长连接请求组以及各长连接请求组内每一有效长连接标识对应的在线路由索引,并将生成的长连接请求组和在线路由索引存储至在线存储单元;

11、消息下发节点,用于接收并解析业务系统下发的业务消息,得到消息终端标识和业务标识;根据消息终端标识和业务标识,从在线存储单元存储的候选长连接请求组中确定目标长连接请求组;根据目标长连接请求组内每一有效长连接标识对应的在线路由索引,确定目标长连接请求组内每一有效长连接标识对应的目标接入节点,以通过目标长连接请求组内每一有效长连接标识对应的目标接入节点向对应的目标终端投递业务消息;

12、在线存储单元,用于存储在线状态处理节点生成的长连接请求组以及长连接请求组内每一有效长连接标识对应的在线路由索引。

13、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:

14、至少一个处理器;

15、以及与至少一个处理器通信连接的存储器;其中,

16、存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例的分布式长连接消息路由方法。

17、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现本发明任一实施例的分布式长连接消息路由方法。

18、根据本发明的另一方面,提供了计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本发明任一实施例的分布式长连接消息路由方法。

19、本发明实施例的技术方案,借助分布式长连接消息路由系统内的接入节点、消息下发节点、在线状态处理节点和在线存储单元实现,具体是:接入节点对接收到的长连接请求集合中的每一长连接请求进行鉴权,得到有效长连接请求集合,并生成有效长连接请求集合中每一有效长连接请求的长连接标识、连接会话及其对应的分组键;在线状态处理节点根据有效长连接请求集合中每一有效长连接请求的长连接标识、连接所在接入节点地址及其对应的分组键,生成多个长连接请求组以及各长连接请求组内每一有效长连接标识对应的在线路由索引,并将生成的长连接请求组和在线路由索引存储至在线存储单元;消息下发节点接收并解析业务系统下发的业务消息,得到消息终端标识和消息业务标识;消息下发节点根据消息终端标识和消息业务标识,从在线存储单元存储的候选长连接请求组中确定目标长连接请求组;消息下发节点根据目标长连接请求组内每一有效长连接标识对应的在线路由索引,确定目标长连接请求组内每一有效长连接标识对应的目标接入节点,以通过目标长连接请求组内每一有效长连接标识对应的目标接入节点向对应的目标终端投递业务消息。上述技术方案,在线状态处理节点以分组键为聚合维度,对所有的有效长连接请求进行分组,得到多个长连接请求组,区分了不同终端或不同业务会话下的有效长连接请求,实现了多终端长连接消息的充分隔离,防止了不同终端、不同业务会话的长连接请求相互混杂纠缠,避免了消息跨终端、跨业务会话无序扩散;同时,在线状态处理节点以分组键为聚合维度,建立了每一有效长连接标识对应的在线路由索引,将相同业务关联的有效长连接请求归集至同一长连接请求组,消息路由时仅需基于分组键定向检索对应请求组,无需遍历全部长连接请求,从而提高了连接定位的准确性,降低了消息误投、漏投问题。其次,消息下发节点根据目标长连接请求组内每一有效长连接标识对应的在线路由索引,确定目标长连接请求组内每一有效长连接标识对应的目标接入节点,消息下发节点无需存储全量会话状态数据,也无需通过广播或轮询的检索方式确定目标长连接请求组内每一有效长连接标识对应的目标接入节点,既降低了消息下发节点的数据存储压力,又减少了无效网络交互开销,缩短了消息投递延迟,从而有效提升了分布式长连接消息路由系统的水平扩展能力,提升了分布式场景下消息推送的实时性与业务响应效率。

20、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。