【技术实现步骤摘要】
消息推送方法、装置、设备及存储介质
[0001]本申请涉及消息推送方法、装置、设备及存储介质,属于数据处理
技术介绍
[0002]很多场景中,后端的业务执行完成后,需要对前端用户进行消息触达,保证消息高效、安全、可靠地推送到前端用户。
[0003]目前市面上常见的后端(单实例)给前端(web端用户)推送消息方案,通过使用WebSocket直接发送,如图1所示,服务A要发送消息给服务B的web端用户2,当只有一个服务B实例时,服务A通过API接口调用方式推送消息给服务B,此时web端2只能与服务B建立了连接,服务B直接通过WebSocket方式推送给web端2即可。该方案简单高效,清晰明了。
[0004]但单实例受限于硬件资源有限,随着用户数量增长,无法满足系统使用。为提升硬件资源使用率,增加系统吞吐量,服务B通常会扩展为多实例部署,服务A通过负载均衡将请求推送的消息分摊到服务B的不同服务实例上。
[0005]上述多实例部署的方案中,服务B在使用WebSocket与web端用户进行交互时,无法 ...
【技术保护点】
【技术特征摘要】
1.一种消息推送方法,其特征在于,应用于后端服务器,所述后端服务器部署为实例集群,所述消息推送方法包括:各实例同时从消息中间件中消费当前消息,所述当前消息是由负载均衡模块分发到后端服务器的目标实例,并由所述目标实例发送至消息中间件的,所述目标实例由负载均衡模块根据均衡策略确定;各实例均将消费到的当前消息发送至后端服务器的对应客户端,以使所述对应客户端接收当前与其建立连接的实例发送的当前消息。2.根据权利要求1所述的方法,其特征在于,所述消息中间件的消息类设置多个分区,每个所述分区通过内存数据库存储获取的消息队列,且通过所述内存数据库记录所述消息队列对应的消费位置。3.根据权利要求2所述的方法,其特征在于,所述各实例同时从消息中间件中消费当前消息,包括:对各所述分区,依次获取所述内存数据库中记录的对应分区的消息队列的消费位置;为对应的分区创建消费线程,所述消费线程用以根据所述消费位置,从对应的分区的消息队列中获取待推送的当前消息;解析所述当前消息携带的消息推送请求,得到待推送的客户端用户信息;根据所述待推送的客户端用户信息,将所述当前消息发送给后端服务器的对应客户端;更新所述内存数据库记录的消费位置。4.根据权利要求3所述的方法,其特征在于,所述获取所述内存数据库中记录的对应分区的消息队列的消费位置之前,还包括:获取所述消息中间件的分区信息;若未获取到所述分区信息,则判定消息中间件存在分区异常,则停止从所述消息中间件中消费所述当前消息的步骤;直到所述消息中间件更新分区信息,并获取到所述分区信息后,触发所述获取所述内存数据库中记录的对应分区的消息队列的消费位置的步骤。5.根据权利要求3所述的方法,其特征在于,所述为对应的分区创建消费线程之前,还包括:若未获取到所述消费位置,则判定所述消息中间件为初始化运行,从当前分区对应的消息队列的初始位置开始消费消息。6.一种消息推送方法,其特征在于,应用于负载均衡模块,所述方法包括:监听用于请求向后端服务器对应客户端推送消息的消息推送请求,所述后端服务器部署为实例集群;监听到所述消息推送请求后,...
【专利技术属性】
技术研发人员:黄璐,朱皎羽,石涛,张炜,李强,申冠锋,
申请(专利权)人:睿视苏州视频科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。