买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】服务器集群、消息推送方法及相关服务器_北京车和家信息技术有限公司_201811634939.8 

申请/专利权人:北京车和家信息技术有限公司

申请日:2018-12-29

公开(公告)日:2021-10-12

公开(公告)号:CN109600452B

主分类号:H04L29/08(20060101)

分类号:H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2021.10.12#授权;2019.05.03#实质审查的生效;2019.04.09#公开

摘要:本发明提供一种服务器集群、消息推送方法及相关服务器,服务器集群的代理服务器若接收到第一终端发送的消息推送请求,则向第二执行服务器发送第一指示;第二执行服务器在共享存储系统中查找第二终端的连接信息;代理服务器接收第二执行服务器发送的第二终端的连接信息,向第一执行服务器发送第二指示;第一执行服务器用于根据第二指示,向第三执行服务器发送第三指示;第三执行服务器用于向第二终端推送第三指示对应的网页端口消息。这样即可实现服务器集群内的跨服务器推送消息的方案。采用基于非阻塞输入输出开发的服务器,解决网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。

主权项:1.一种服务器集群,其特征在于,所述服务器集群包括代理服务器和至少三个执行服务器;所述代理服务器用于在第一执行服务器与第一终端建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,其中,所述消息推送请求包括第二终端的身份信息,所述第二终端为所述消息推送请求所请求推送的终端;所述第二执行服务器用于根据所述第一指示,在所述服务器集群的共享存储系统中查找所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;所述代理服务器用于接收所述第二执行服务器发送的所述第二终端的连接信息,向所述第一执行服务器发送第二指示,其中,所述第二指示包括所述第三执行服务器的身份信息;所述第一执行服务器用于根据所述第二指示,向所述第三执行服务器发送第三指示,其中,所述第三指示包括所述第二终端的身份信息;所述第三执行服务器用于在与所述第二终端建立网页端口连接的情况下,向所述第二终端推送所述第三指示对应的网页端口消息;其中,所述第一执行服务器和所述第三执行服务器均为基于非阻塞输入输出开发的服务器。

全文数据:服务器集群、消息推送方法及相关服务器技术领域本发明涉及通信技术领域,尤其涉及一种服务器集群、消息推送方法及相关服务器。背景技术随着通信技术的发展,信息传递方案也逐步优化。向客户端推送消息,需要基于一定的通讯协议建立服务器和客户端之间的通信连接。网页端口WebSocket协议由于具有能进行双向通信等优点,已经逐渐取代HTTP协议HyperTextTransferProtocol,超文本传输协议,而被广泛应用。服务器集群是通过共享存储系统,通常为共享存储数据库共享信息以实现多台服务器之间的连接,然而每一台服务器只能保存自己内存中的网页端口连接,网页端口会话是无法序列化并保存在服务器集群的数据库中。因此,在服务器集群中,无法实现跨服务器的网页端口推送。发明内容本发明实施例提供一种服务器集群、消息推送方法及相关服务器,以解决现有服务器集群中,无法实现跨服务器的网页端口推送的技术问题。为了达到上述目的,本发明提供的具体方案如下:第一方面,本发明实施例提供了一种服务器集群,所述服务器集群包括代理服务器和至少三个执行服务器;所述代理服务器用于在第一执行服务器与第一终端建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,其中,所述消息推送请求包括第二终端的身份信息,所述第二终端为所述消息推送请求所请求推送的终端;所述第二执行服务器用于根据所述第一指示,在所述服务器集群的共享存储系统中查找所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;所述代理服务器用于接收所述第二执行服务器发送的所述第二终端的连接信息,向所述第一执行服务器发送第二指示,其中,所述第二指示包括所述第三执行服务器的身份信息;所述第一执行服务器用于根据所述第二指示,向所述第三执行服务器发送第三指示,其中,所述第三指示包括所述第二终端的身份信息;所述第三执行服务器用于在与所述第二终端建立网页端口连接的情况下,向所述第二终端推送所述第三指示对应的网页端口消息;其中,所述第一执行服务器和所述第三执行服务器均为基于非阻塞输入输出开发的服务器。可选的,所述第二执行服务器为根据超文本传输协议,基于阻塞输入输出开发服务器。第二方面,本发明实施例提供了一种消息推送方法,应用于代理服务器,所述代理服务器为第一方面中任一项所述的服务器集群内的代理服务器,所述方法包括:在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。第三方面,本发明实施例还提供了另一种消息推送方法,应用于第一执行服务器,所述第一执行服务器为第一方面中任一项所述的服务器集群内的第一执行服务器,所述方法包括:在所述第一执行服务器与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;若接收到代理服务器发送的第二指示,向第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述消息推送请求包括请求推送的目标消息;所述向所述第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息的步骤,包括:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。第四方面,本发明实施例还提供了一种消息推送方法,应用于第三执行服务器,所述第三执行服务器为第一方面中任一项所述的服务器集群内的第三执行服务器,所述方法包括:在与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述向所述第二终端推送所述第三指示对应的网页端口消息的步骤之前,所述方法还包括:在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第三执行服务器的身份信息。可选的,所述将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内的步骤之后,所述方法还包括:在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。第五方面,本发明实施例提供了一种代理服务器,包括:第一发送模块,用于在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收模块,用于接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;第二发送模块,用于向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。第六方面,本发明实施例提供了一种第一执行服务器,包括:接收模块,用于在所述第一执行服务器与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;发送模块,用于若接收到代理服务器发送的第二指示,向第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述消息推送请求包括请求推送的目标消息;所述发送模块用于:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。第七方面,本发明实施例提供了一种第三执行服务器,包括:推送模块,用于在与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述第三执行服务器还包括:添加模块,用于在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第三执行服务器的身份信息。可选的,所述第三执行服务器还包括:删除模块,用于在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。第八方面,本发明实施例提供了一种服务器,包括收发机、总线接口、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第二方面至第四方面中任一项所述的消息推送方法。第九方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机序被处理器执行时实现如第一方面至第三方面中任一项所述的消息推送方法的步骤。本发明实施例提供的服务器集群及消息推送方法,在第一终端与服务器集群内的第一执行服务器建立网页端口连接后,可以向服务器集群发送到消息推送请求。代理服务器指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种服务器集群的交互示意图;;图2为本发明实施例提供的消息推送方法的流程示意图图3为本发明实施例提供的另一种消息推送方法的流程示意图;图4为本发明实施例提供的另一种消息推送方法的流程示意图;图5为本发明实施例提供的一种代理服务器的结构示意图;图6为本发明实施例提供的一种第一执行服务器的结构示意图;图7为本发明实施例提供的一种第三执行服务器的结构示意图;图8为本发明实施例提供的另一种第三执行服务器的结构示意图;图9为本发明实施例提供的另一种服务器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,图1为本发明实施例提供的服务器集群的结构示意图。如图1所示,所述服务器集群包括代理服务器和至少三个执行服务器。本实施例中,代理服务器作为该服务器集群的负载均衡设备,可以接收外接终端发送至该服务器集群的多个请求,根据请求的内容将所接收的多个请求分配到对应的执行服务器,由对应的执行服务器执行终端请求。服务器集群内的至少两个执行服务器主要分为两种,用于执行对外终端请求的执行服务器,以及用于执行代理服务器分配的查询、存储等集群内工作的执行服务器。本实施例中,服务器集群内包括第一执行服务器、第二执行服务器和第三执行服务器,其中,第一执行服务器和第三执行服务器用于执行对外终端请求,第二执行服务器用于执行代理服务器分配的集群内工作。可选的,所述代理服务器可以为Nginx,代理终端和服务器之间的HTTP请求和WebSocket请求。可选的,所述第一执行服务器和第三执行服务器可以为基于非阻塞输入输出开发的服务器,例如Netty服务器。Netty服务器占用资源更小,性能更好,可以轻松实现百万终端的连接方案,有效避免服务器集群环境下的扩展性问题。可选的,所述第二执行服务器可以为根据超文本传输协议,基于阻塞输入输出开发服务器,例如Tomcat服务。Tomcat服务器的开发成本较低,且性能也相对优越,可以用作第二执行服务器。当然,第二执行服务器也可以为Netty服务器,以便达到更好的请求处理效果。此外,该服务器集群还具有共享存储系统,用于存储该服务器集群的共有信息,该服务器集群内的多个服务器均可以在共享存储系统内查询、存储、更新、修改共有信息。该共享存储系统可以为Redis系统,Redis系统具备读写性能优异、支持数据持久化、数据结构丰富等优点。所述代理服务器用于在第一执行服务器与第一终端建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,其中,所述消息推送请求包括第二终端的身份信息,所述第二终端为所述消息推送请求所请求推送的终端;所述第二执行服务器用于根据所述第一指示,在所述服务器集群的共享存储系统中查找所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;所述代理服务器用于接收所述第二执行服务器发送的所述第二终端的连接信息,向所述第一执行服务器发送第二指示,其中,所述第二指示包括所述第三执行服务器的身份信息;所述第一执行服务器用于根据所述第二指示,向所述第三执行服务器发送第三指示,其中,所述第三指示包括所述第二终端的身份信息;所述第三执行服务器用于在与所述第二终端建立网页端口连接的情况下,向所述第二终端推送所述第三指示对应的网页端口消息;其中,所述第一执行服务器和所述第三执行服务器均为基于非阻塞输入输出开发的服务器。本实施例提供的服务器集群,在第一终端与服务器集群内的第一执行服务器建立网页端口连接后,可以向服务器集群发送到消息推送请求。代理服务器指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。参见图2,为本发明实施例提供的一种消息推送方法的流程示意图,所述消息推送方法应用于服务器集群内的代理服务器。如图2所示,本实施例提供的消息推送方法,主要包括以下步骤:步骤201、在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息;第一执行服务器与第一终端建立网页端口连接,即WebSocket连接,第一执行服务器即可向第一终端推送WebSocket消息。本实施例中,第一终端可以为能够承载浏览器的终端,包括但不限于手机、平板、车载电脑和计算机等电子设备。此外,第一终端还可以向服务器集群发送消息推送请求,以请求该服务器集群向除所述第一终端外的其他终端推送WebSocket消息,这就要求该其他终端与服务器集群内的某一执行服务器也建立WebSocket连接。定义该消息推送请求所请求推送的终端为第二终端,则第一终端发送的消息推送请求还要包括第二终端的身份信息。可选的,终端的身份信息可以以Cookie储存在用户本地终端上的数据的形式保存,也可以由终端用户手动编辑输入的编号或者账号等作为终端的身份信息等。另外,所述消息推送请求也可以包含请求推送的WebSocket消息的类型或者具体内容,以使该服务器集群能够准确向第二终端对应所请求的WebSocket消息,满足了请求推送的WebSocket消息的多样性需求。第一终端向服务器集群发送该消息推送请求之后,代理服务器根据消息推送请求的内容,指示服务器集群内的第二执行服务器查询第二终端的连接信息,所述第二终端的连接信息为所述第二终端与服务器集群内的相关服务器的连接状态。另外,执行服务器在与终端建立WebSocket连接后,将终端的连接信息存储到共享存储系统中。例如,第二终端与服务器集群内的第三服务器建立WebSocket连接时,第三执行服务器将第二终端的连接信息存储到共享存储系统内。具体的,第三执行服务器可以将第三终端的身份信息作为key,将该第三执行服务器的身份信息作为Value存储到共享存储系统中。若第三执行服务器与第二终端断开WebSocket连接,第三执行服务器即可将第二终端的连接信息从共享存储系统中删除。其中,服务器的身份信息可以包括服务器的网际协议IP地址和端口号,或者以编号、IP地址、SEQSequencenumber,序列码的形式形成的身份信息。步骤202、接收所述第二执行服务器发送的所述第二终端的连接信息;第二执行服务器根据代理服务器的第一指示,在共享存储系统中查找第二终端的连接信息。若第二执行服务器查找到第二终端的连接信息,且第二终端的连接信息包括第三执行服务器的身份信息,则表示当前情况下,第二终端与第三执行服务器建立WebSocket连接,可以使第三执行服务器向第二终端推送WebSocket消息。若第二执行服务器未查找到第二终端的连接信息,则表示第二终端未与服务器集群内的服务器建立WebSocket连接,或者连接已断开,不能向该第二终端推送WebSocket消息。此时,服务器集群可以直接结束此次消息推送操作,也可以向第一终端返回无法向第二终端推送WebSocket的连接指示。步骤203、向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息。代理服务器确定第二终端与第三执行服务器建立WebSocket连接后,向第一执行服务器发送第二指示,该第二指示可以包括第三执行服务器的身份信息。第一执行服务器接收到第二指示后,通知第三执行服务器向第二终端推送WebSocket消息。具体的,第一执行服务器可以仅向第三执行服务器发送包含第二终端的身份信息的推送通知,以使第三执行服务器向第二终端推送约定的WebSocket消息。第一执行服务器发送的推送通知也可以包含请求推送的消息类型,以使第三执行服务器获取该消息类型对应的WebSocket消息,推送至第三终端。当然,第一执行器发送的推送通知也可以直接包含请求推送的WebSocket消息,以使第三执行服务器将所接收的WebSocket消息转发至第二终端。这样,即为完成了消息推送操作。当然,在其他实施方式中,所述第二执行服务器在获取第二终端的连接信息后,也可以直接将该第二终端的连接信息发送至第一执行服务器,以使得第一执行服务器通知第三执行服务器推送WebSocket消息,不作限定。需要说明的是,本实施例中的第一执行服务器和第三服务器可以是不同的服务器,也可以是同一个服务器。若第一执行服务器和第三执行服务器为同一服务器,即为第一终端与第二终端均与第一执行服务器建立WebSocket连接。这种情况下,第一执行服务器在接收到代理服务器的第二指示后,直接向第二终端推送WebSocket消息。本发明实施例提供的消息推送方法,代理服务器根据第一终端发送的消息推送请求,指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。参见图3,为本发明另一实施例提供的消息推送方法的流程示意图,所提供的消息推送方法应用于服务器集群内的第一执行服务器。如图3所示,所提供的消息推送方法主要包括:步骤301、在与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求;步骤302、若接收到代理服务器发送的第二指示,向第三执行服务器发送第三指示,以使所述第三执行服务器向第二终端推送所述消息推送请求对应的网页端口消息。本实施例中,第一执行服务器与第一终端建立WebSocket连接,则第一执行服务器可以接收第一终端发送的消息推送请求。服务器集群内的代理服务器在接收到消息推送请求后,解析所述消息推送请求所请求推送的第二终端。代理服务器获取消息推送请求包含的第二终端的身份信息,并生成包含第二终端的身份信息的第一指示,以指示第二执行服务器在服务器集群的共享存储系统中查询该第二终端的连接信息。若第二执行服务器在共享存储系统中查找到第二终端在该服务器集群中建立WebSocket连接的第三执行服务器,则向代理服务器返回该第三执行服务器的身份信息,代理服务器即向该第一执行服务器发送包含第三执行服务器的身份信息。第一执行服务器在接收到代理服务器发送的第二指示后,即通知第三执行服务器向该第二终端推送WebSocket消息。具体的,第一执行服务器可以向第三执行服务器发送第三指示,该第三指示可以包含第二终端的身份信息。第三服务器接收到该第三指示后,向第二终端推送WebSocket消息。可选的,所述消息推送请求还可以包括请求推送的目标消息;步骤302所述的,向所述第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息的步骤,可以包括:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。第一执行服务器向第三执行服务器发送统一资源定位符UniformResourceLocator,简称URL请求,该URL请求包含请求推送的目标消息。第三执行服务器接收到该URL请求后,向第二终端推送目标消息。本发明实施例提供的消息推送方法,第一终端与服务器集群内的第一执行服务器建立网页端口连接后,可以向服务器集群发送到消息推送请求。代理服务器指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。本发明实施例提供的消息推送方法的具体实施过程,可以参见上述图1所示的实施例提供的消息推送方法的具体实施过程,在此不再一一赘述。参见图4,为本发明另一实施例提供的一种消息推送方法的流程示意图,本实施例的消息推送方法应用于服务器集群内的第三执行服务器。如图4所示,所提供的消息推送方法主要包括:步骤401、在与第二终端建立网页端口连接的情况下,若接收到第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息。本实施例中,服务器集群内的第三执行服务器与第二终端建立WebSocket连接,所述第三执行服务器可以向第二终端推送WebSocket消息。此外,服务器集群内的第一执行服务器与第一终端建立WebSocket连接,因此,第一终端可以向第一执行服务器发送消息推送请求,以请求该服务器集群向第二终端推送WebSocket消息。服务器集群内的代理服务器在接收到第一终端的消息推送请求后,获取消息推送请求所请求推送的第二终端的身份信息。代理服务器向第二执行服务器发送第一指示,指示该第二执行服务器在服务器集群的共享存储系统内查找该第二终端的连接信息。若代理服务器获知该第二终端与服务器集群内的第三执行服务器建立WebSocket连接,则代理服务器发送第二指示至第一执行服务器,以指示第一执行服务器通知第三执行服务器推送消息。第一执行服务器接收到第二指示后,向第三执行服务器发送第三指示,该第三指示可以包括第二终端的身份信息。第三执行服务器根据该第三指示,向第二终端推送WebSocket消息。可选的,步骤401所述的,向所述第二终端推送所述第三指示对应的网页端口消息的步骤之前,所述方法还可以包括:在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第二终端的身份信息。第三执行服务器在与第二终端建立WebSocket连接时,先将该第二终端的连接信息存储到服务器集群的共享存储系统内,以记录第二终端在该服务器集群内的连接状态。对应的,所述将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内的步骤之后,所述方法还包括:在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。若第三执行服务器与第二终端断开WebSocket连接,将第二终端的连接信息从服务器集群中删除,以实时更新第二终端在该服务器集群内的连接状态。当然,在其他实施方式中,代理服务器在监测到第三执行服务器与第二终端建立或者断开WebSocket连接时,也可以指示第二执行服务器或者其他执行服务器存储或者删除第二终端的连接信息,不作限定。本发明实施例提供的消息推送方法,第一终端与服务器集群内的第一执行服务器建立网页端口连接后,可以向服务器集群发送到消息推送请求。代理服务器指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。本发明实施例提供的消息推送方法的具体实施过程,可以参见上述图1所示的实施例提供的消息推送方法的具体实施过程,在此不再一一赘述。参见图5,为本发明实施例提供的一种代理服务器的结构示意图。所述代理服务器可以为上述图1至图4所示的实施例中的代理服务器。如图5所示,所述代理服务器500包括:第一发送模块501,用于在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收模块502,用于接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;第二发送模块503,用于向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。本发明实施例提供的代理服务器,根据第一终端发送的消息推送请求,指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。本发明实施例提供的代理服务器的具体实施过程,可以参见上述图1至图4所示的任一实施例提供的服务器集群及消息推送方法的具体实施过程,在此不再一一赘述。参见图6,为本发明实施例提供的一种第一执行服务器的结构示意图。所述第一执行服务器可以为上述图1至图4所示的实施例中的第一执行服务器。如图6所示,所述第一执行服务器600可以包括:接收模块601,用于在所述第一执行服务器与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;发送模块602,用于若接收到所述代理服务器发送的第二指示,向所述第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述消息推送请求包括请求推送的目标消息;所述发送模块602用于:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。本发明实施例提供的第一执行服务器,通过代理服务器根据第一终端发送的消息推送请求,指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。本发明实施例提供的第一执行服务器的具体实施过程,可以参见上述图1至图4所示的任一实施例提供的服务器集群及消息推送方法的具体实施过程,在此不再一一赘述。参见图7,为本发明实施例提供的一种第三执行服务器的结构示意图。所述第三执行服务器可以为上述图1至图4所示的实施例中的第三执行服务器。如图7所示,所述第三执行服务器700可以包括:推送模块701,用于在所述第三执行服务器与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器均为基于非阻塞输入输出开发的服务器。可选的,如图8所示,所述第三执行服务器700还可以包括:添加模块701,用于在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第二终端的身份信息。可选的,如图8所示,所述第三执行服务器700还可以包括:删除模块702,用于在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。本发明实施例提供的第三执行服务器,通过代理服务器根据第一终端发送的消息推送请求,指示第二执行服务器查询消息推送请求所请求推送的第二终端在该服务器集群中,所连接的第三执行服务器的身份信息,然后通过第一执行服务器通知该第三执行服务器向第二终端推送消息。这样,即可实现服务器集群内的跨服务器推送消息的方案。此外,所述第一执行服务器和第二执行服务器均为基于非阻塞输入输出开发的服务器,解决了网页端口连接时的扩展性问题,占用的资源更小,性能更好,数据连接量更大,优化了服务器集群的连接方案。本发明实施例提供的第三执行服务器的具体实施过程,可以参见上述图1至图4所示的任一实施例提供的服务器集群及消息推送方法的具体实施过程,在此不再一一赘述。参见图9,为本发明实施例提供的一种服务器的结构示意图。如图9所示,服务器900包括:收发机901、总线接口及处理器902。服务器900为服务器集群中的不同服务器时,收发机及处理器执行的功能不同。若所述服务器900为代理服务器;收发机901,可以用于在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;处理器902,可以用于生成第二指示;所述收发机901还用于向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。若所述服务器900为第一执行服务器;收发机901,可以用于在所述第一执行服务器与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;处理器902,可以用于若接收到所述代理服务器发送的第二指示,生成第三指示;所述收发机901还可以用于向所述第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。可选的,所述消息推送请求包括请求推送的目标消息;所述处理器902所述收发机901还可以用于:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。若所述服务器900为第三执行服务器;收发机901,可以用于在所述第三执行服务器与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器均为基于非阻塞输入输出开发的服务器。如图9所示,在本发明实施例中,服务器900还包括:存储器903。在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器902代表的一个或多个处理器和存储器903代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机901可以是多个元件,即包括发送机和接收机,提供可以用于在传输介质上与各种其他装置通信的单元。处理器902负责管理总线架构和通常的处理,存储器903可以存储处理器902在执行操作时所使用的数据。本发明实施例提供的服务器可以实现上述各个实施例提供的服务器集群及消息推送方法的功能,在此不再一一赘述。本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述消息推送方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器Read-OnlyMemory,简称ROM、随机存取存储器RandomAccessMemory,简称RAM、磁碟或者光盘等。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质如ROMRAM、磁碟、光盘中,包括若干指令用以使得一台终端可以是手机,计算机,服务器,空调器,或者网络设备等执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

权利要求:1.一种服务器集群,其特征在于,所述服务器集群包括代理服务器和至少三个执行服务器;所述代理服务器用于在第一执行服务器与第一终端建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,其中,所述消息推送请求包括第二终端的身份信息,所述第二终端为所述消息推送请求所请求推送的终端;所述第二执行服务器用于根据所述第一指示,在所述服务器集群的共享存储系统中查找所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;所述代理服务器用于接收所述第二执行服务器发送的所述第二终端的连接信息,向所述第一执行服务器发送第二指示,其中,所述第二指示包括所述第三执行服务器的身份信息;所述第一执行服务器用于根据所述第二指示,向所述第三执行服务器发送第三指示,其中,所述第三指示包括所述第二终端的身份信息;所述第三执行服务器用于在与所述第二终端建立网页端口连接的情况下,向所述第二终端推送所述第三指示对应的网页端口消息;其中,所述第一执行服务器和所述第三执行服务器均为基于非阻塞输入输出开发的服务器。2.根据权利要求1所述的方法,其特征在于,所述第二执行服务器为根据超文本传输协议,基于阻塞输入输出开发服务器。3.一种消息推送方法,其特征在于,应用于代理服务器,所述代理服务器为权利要求1或者2中任一项所述的服务器集群中的代理服务器,所述方法包括:在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。4.一种消息推送方法,其特征在于,应用于第一执行服务器,所述第一执行服务器为权利要求1或者2中任一项所述的服务器集群内的第一执行服务器,所述方法包括:在与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;若接收到代理服务器发送的第二指示,向第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。5.根据权利要求4所述的方法,其特征在于,所述消息推送请求包括请求推送的目标消息;所述向所述第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息的步骤,包括:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。6.一种消息推送方法,其特征在于,应用于第三执行服务器,所述第三执行服务器为权利要求1或者2中任一项所述的服务器集群内的第三执行服务器,所述方法包括:在与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器为基于非阻塞输入输出开发的服务器。7.根据权利要求6所述的方法,其特征在于,所述向所述第二终端推送所述第三指示对应的网页端口消息的步骤之前,所述方法还包括:在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第三执行服务器的身份信息。8.根据权利要求7所述的方法,其特征在于,所述将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内的步骤之后,所述方法还包括:在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。9.一种代理服务器,其特征在于,包括:第一发送模块,用于在第一终端与第一执行服务器建立网页端口连接的情况下,若接收到所述第一终端发送的消息推送请求,则向第二执行服务器发送第一指示,以使所述第二执行服务器根据所述第一指示,在所述服务器集群的共享存储系统中查找第二终端的连接信息,其中,所述第二终端为所述消息推送请求所请求推送的终端,所述消息推送请求包括所述第二终端的身份信息;接收模块,用于接收所述第二执行服务器发送的所述第二终端的连接信息,其中,所述连接信息包括第三执行服务器的身份信息,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器;第二发送模块,用于向所述第一执行服务器发送第二指示,以使所述第一执行服务器通知所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第二指示包括所述第三执行服务器的身份信息。10.一种第一执行服务器,其特征在于,包括:接收模块,用于在所述第一执行服务器与第一终端建立网页端口连接的情况下,接收所述第一终端发送的消息推送请求,其中,所述消息推送请求包括请求推送的第二终端的身份信息;发送模块,用于若接收到代理服务器发送的第二指示,向第三执行服务器发送第三指示,以使所述第三执行服务器向所述第二终端推送所述消息推送请求对应的网页端口消息,其中,所述第三执行服务器为在所述服务器集群中,与所述第二终端建立网页端口连接的执行服务器,所述第二指示包括所述第三执行服务器的身份信息;其中,所述第一执行服务器为基于非阻塞输入输出开发的服务器。11.根据权利要求10所述的第一执行服务器,其特征在于,所述消息推送请求包括请求推送的目标消息;所述发送模块用于:向所述第三执行服务器发送包含所述目标消息的统一资源定位符请求。12.一种第三执行服务器,其特征在于,包括:推送模块,用于在与第二终端建立网页端口连接的情况下,若接收到所述第一执行服务器发送的第三指示,向所述第二终端推送所述第三指示对应的网页端口消息,其中,所述第三指示包括所述第二终端的身份信息;其中,所述第三执行服务器为基于非阻塞输入输出开发的服务器。13.根据权利要求12所述的第三执行服务器,其特征在于,所述第三执行服务器还包括:添加模块,用于在与所述第二终端建立网页端口连接时,将所述第二终端的连接信息添加到所述服务器集群的共享存储系统内,其中,所述第二终端的连接信息包括所述第三执行服务器的身份信息。14.根据权利要求13所述的第三执行服务器,其特征在于,所述第三执行服务器还包括:删除模块,用于在与所述第二终端断开网页端口连接时,将所述第二终端的连接信息从所述共享存储系统中删除。15.一种服务器,其特征在于,包括收发机、总线接口、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求2至7中任一项所述的消息推送方法。

百度查询: 北京车和家信息技术有限公司 服务器集群、消息推送方法及相关服务器

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术