消息通知方法和系统技术方案

技术编号:34898986 阅读:8 留言:0更新日期:2022-09-10 14:00
本申请提出一种消息通知方法和系统,该方法包括:负载均衡模块在接收到触发事件后通过负载均衡策略调度集群中的第一服务器;第一服务器根据触发事件生产第一消息,并将第一消息推送至消息中间件;集群中的第二服务器监听到消息中间件中的第一消息后,消费第一消息,若判定第一消息与已成功建立websocket链接的用户端相关则将消费到的第一消息通过对应websocket链接返回至相关用户端。本申请将消息中间件作为消息的缓存,连接不同服务器,支持负载均衡调用任意数量的服务器处理不同任务,均能将消息准确推送至用户端,且大大提高访问速度,减少对集群的频繁访问压力。减少对集群的频繁访问压力。减少对集群的频繁访问压力。

【技术实现步骤摘要】
消息通知方法和系统


[0001]本申请涉及计算机
,尤其涉及一种消息通知方法和系统。

技术介绍

[0002]在用户端与服务器交互过程中,往往采用websocket方式由服务器向用户端实时推送消息通知,或者由用户端作为前端进行循环定时请求的方式向服务器请求获取消息通知。websocket方式即长连接,通过负载均衡将用户请求分配到集群中某台服务器上,由分配的该服务器执行对应请求任务,在处理过程中该服务器也会直接通过该websocket长连接将相关消息推送到至该用户端的前台web进行实时展示。循环定时查询的方式就是由用户端每间隔一定时长主动向服务器发起一个请求,服务器如果查询到新的消息通知则会返回给用户端显示。
[0003]Websocket长链接的缺点是必须要始终与建立websocket长链接的那个服务器保持连接才能进行消息的通知,即负载均衡分配的服务器和返回消息的服务器必须是同一个服务器,否则由于没有前后端建立长连接,无法进行消息的发送。例如,后台有两台服务器serverA和serverB,用户访问页面的时候负载均衡是转发到serverB来处理的,第三方服务调用serverA传过来一个数据,处理完成后,serverA由于没有与用户端建立websocket长连接,导致无法向用户端发送消息。循环定时查询的缺点是,用户端会一直循环定时查询,即使后台服务器一直不会有新的消息产生,也会一直访问后台服务器查询,给服务器造成了不必要的访问负担和压力,浪费系统资源,而且及时性也会受影响。

技术实现思路

[0004]为了解决现有技术中在集群中如果负载均衡分配的服务器与返回消息的服务器为不同服务器则会导致消息无法返回给用户端以及由用户端定时访问服务器则会给服务器造成访问压力浪费系统资源的技术问题。本申请提供了一种消息通知方法和系统,其主要目的在于支持负载均衡调用任意数量的服务器处理不同任务,均能将消息准确推送至用户端,且大大提高访问速度,减少对集群的频繁访问压力。
[0005]为实现上述目的,本申请提供了一种消息通知方法,该方法包括:
[0006]负载均衡模块在接收到触发事件后通过负载均衡策略调度集群中的第一服务器;
[0007]第一服务器根据触发事件生产第一消息,并将第一消息推送至消息中间件;
[0008]集群中的第二服务器监听到消息中间件中的第一消息后,消费第一消息,若判定第一消息与已成功建立websocket链接的用户端相关则将消费到的第一消息通过对应websocket链接返回至相关用户端。
[0009]此外,为实现上述目的,本申请还提供了一种消息通知系统,该系统包括负载均衡模块、多个服务器和消息中间件,其中,多个服务器包括第一服务器和第二服务器,多个服务器部署为集群;
[0010]负载均衡模块,用于在接收到触发事件后通过负载均衡策略调度集群中的第一服
务器;
[0011]第一服务器,用于根据触发事件生产第一消息,并将第一消息推送至消息中间件;
[0012]集群中的第二服务器,用于监听到消息中间件中的第一消息后,消费第一消息,若判定第一消息与已成功建立websocket链接的用户端相关则将消费到的第一消息通过对应websocket链接返回至相关用户端。
[0013]为实现上述目的,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前面任一项的消息通知方法中对应的步骤。
[0014]为实现上述目的,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的消息通知方法中对应的步骤。
[0015]本申请提出的消息通知方法和系统,通过消息中间件对消息进行缓存,支持负载均衡调用任意数量的服务器处理不同任务,均能将消息准确推送至用户端,减小了负载均衡对任务分配的限制,有效克服现有技术多服务器分摊任务导致消息无法正确推送,为了消息能够正确推送要求服务器必须一致的局限性。另外,服务器从消息中间件中消费消息,有效减少了对集群的频繁访问压力,且大大提高了访问速度。
附图说明
[0016]图1为本申请一实施例中消息通知方法的应用场景图;
[0017]图2为本申请一实施例中消息通知方法的流程示意图;
[0018]图3为本申请一实施例中计算机设备的内部结构框图。
[0019]本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0020]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0021]本申请提供的消息通知方法,可应用在如图1的消息通知系统中,该消息通知系统包括负载均衡模块100、多个服务器和消息中间件300,其中,多个服务器包括第一服务器210和第二服务器220,还可以包括其他服务器2nm;
[0022]负载均衡模块100,用于在接收到触发事件后通过负载均衡策略调度集群中的第一服务器210;
[0023]第一服务器210,用于根据触发事件生产第一消息,并将第一消息推送至消息中间件300;
[0024]集群中的第二服务器220,用于监听到消息中间件300中的第一消息后,消费第一消息,若判定第一消息与已成功建立websocket链接的用户端相关则将消费到的第一消息通过对应websocket链接返回至相关用户端400。
[0025]集群中第二服务器220的数量包括多个,但是集群中与同一个相关用户端400建立websocket链接的第二服务器220仅有一个。
[0026]同一个第二服务器220可以与多个不同用户端建立不同的websocket链接,第二服务器220会将第一消息返回给用户端中相关用户端400。另外,相关用户端400的数量本申请不作限制,同一个第二服务器可以将第一消息发送给多个相关用户端400。
[0027]其中,用户端为终端设备,可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。
[0028]图2为本申请一实施例中消息通知方法的流程示意图。参考图2,以该方法应用在图1中的消息通知系统为例进行说明。该消息通知方法包括以下步骤S100

S300。
[0029]S100:负载均衡模块在接收到触发事件后通过负载均衡策略调度集群中的第一服务器。
[0030]具体地,负载均衡模块(Load Balance)用于将负载(工作任务)进行平衡、分摊到多个操作单元上运行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息通知方法,其特征在于,所述方法包括:负载均衡模块在接收到触发事件后通过负载均衡策略调度集群中的第一服务器;所述第一服务器根据所述触发事件生产第一消息,并将所述第一消息推送至消息中间件;所述集群中的第二服务器监听到所述消息中间件中的所述第一消息后,消费所述第一消息,若判定所述第一消息与已成功建立websocket链接的用户端相关则将消费到的所述第一消息通过对应websocket链接返回至相关用户端。2.根据权利要求1所述的方法,其特征在于,所述第一服务器根据所述触发事件生产第一消息,包括:若所述触发事件为第三方通知消息,则所述第一服务器根据所述第三方通知消息生产第一消息;若所述触发事件为触发任务,则所述第一服务器在执行完所述触发任务后生产第一消息。3.根据权利要求1所述的方法,其特征在于,在所述消费所述第一消息之后,所述方法还包括:若监测到所有第二服务器均已消费所述第一消息,则所述消息中间件将所述第一消息从所述消息中间件中移除。4.根据权利要求3所述的方法,其特征在于,在所述集群中的第二服务器监听到所述消息中间件中的所述第一消息后,消费所述第一消息之前,所述方法还包括:所述第二服务器在启动后根据对应的唯一标识生成对应的消费者编码,并根据所述消费者编码向所述消息中间件申请注册为消费者,其中,所述唯一标识包括机器唯一标识,或,所述唯一标识包括机器唯一标识和对应后台实例的进程号。5.根据权利要求4所述的方法,其特征在于,所述唯一标识包括机器唯一标识和对应后台实例的进程号;所述第二服务器在启动后根据对应的唯一标识生成对应的消费者编码,并根据所述消费者编码向所述消息中间件申请注册为消费者,包括:所述第二服务器在启动后根据对应的机器唯一标识和后台实例对应的进程号生成对应后台实例的消费者编码,并根据所述消费者编码向所述消息中间件申请将对应后台实例注册为消费者;所述若监测到所有第二服务器均已消费所述第一消息,则所述消息中间件将所述第一消息从所述消息中间件中移除,包括:若监测到每个第二服务器的每个后台实例均已消费所述第一消息,则所...

【专利技术属性】
技术研发人员:丁磊磊
申请(专利权)人:平安科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1