服务器的消息推送方法及推送系统与流程

文档序号:11138757阅读:788来源:国知局
服务器的消息推送方法及推送系统与制造工艺

本发明涉及计算机技术领域,具体来说,涉及一种服务器的消息推送方法及推送系统。



背景技术:

对于业务复杂且对数据实时性需求高的一些平台来说,保证业务数据的实时、稳定、安全、和准确是十分重要的。一般地,数据的传递大致可分为以下几个步骤:实时业务操作产生实时数据,并存储到数据库;接收客户端定时刷新或用户手动刷新获取数据;服务器根据一些条件查询并返回数据结果;按照一定的格式将数据渲染到接收客户端。

不难看出,现有技术是通过接收客户端主动向服务器发出请求,从而把与该用户相关的最新数据获取回来,这种方法主要存在以下两个方面的不足:

一、时效性差:通过接收客户端向服务器设置定时任务或者手动刷新向服务端拉取数据,时效性差,数据产生后,不能及时的渲染到接收客户端,造成渲染数据延时的问题。比如一些对数据要求时效性比较强的业务,当业务产生后,就立即需要去解决处理的业务,现有技术并不能很好的进行处理。

二、单点问题:当接入服务器的终端不断增多时,数据并发量也会随之不断增大,服务器的压力也不断增大,响应速度慢,还可能出现数据丢失的问题,性能瓶颈问题会非常明显。

针对相关技术时效性差、及由于单点问题导致的性能瓶颈的问题,目前尚未提出有效的解决方案。



技术实现要素:

针对相关技术时效性差、及由于单点问题导致的性能瓶颈的问题,本发明提出一种服务器的消息推送方法及推送系统,能够实现消息数据的实时推送,以及实现消息数据的负载均衡,减轻服务器的压力。

本发明的技术方案是这样实现的:

根据本发明的一个方面,提供了一种服务器的消息推送方法,包括:建立服务器端与接收客户端的AMQP连接;以及根据AMQP连接推送消息数据;其中,AMQP连接与消息中间件整合在一起。

优选地,接收客户端为多个;以及消息中间件为Rabbitmq模块。

优选地,建立服务器端与接收客户端的AMQP连接,包括:设置消息推送策略;以及根据消息推送策略建立服务器端与接收客户端的AMQP连接。

优选地,根据AMQP连接推送消息数据,包括:服务器端根据AMQP连接生成并发送消息数据至消息中间件;消息中间件根据AMQP连接将消息数据推送至与服务器端建立AMQP连接的接收客户端或将消息数据丢弃。

优选地,消息中间件根据AMQP连接将消息数据推送至与服务器端建立AMQP连接的接收客户端或将消息数据丢弃,包括:在至少有一个接收客户端与服务器端AMQP连接的情况下,消息中间件将消息数据推送至接收客户端;在没有接收客户端与服务器端AMQP连接的情况下,消息中间件将消息数据丢弃。

优选地,在服务器端根据AMQP连接生成并发送消息数据至消息中间件之后,还包括:消息中间件根据AMQP连接对消息数据进行存储。

优选地,消息中间件根据AMQP连接对消息数据进行存储,包括:在至少有一个接收客户端与服务器端AMQP连接的情况下,对消息数据进行存储;在没有接收客户端与服务器端AMQP连接的情况下,不对消息数据进行存储。

优选地,消息中间件根据AMQP连接将消息数据推送至与服务器端建立AMQP连接的接收客户端或将消息数据丢弃,包括:在对消息数据进行存储的情况下,消息中间件将消息数据推送至接收客户端;在没有对消息数据进行存储的情况下,消息中间件将消息数据丢弃。

优选地,消息中间件将消息数据推送至接收客户端,包括:消息中间件通过POP模式、或通过Subscribe模式将消息数据推送至接收客户端。

根据本发明的另一方面,提供了一种服务器的消息推送系统,包括:服务器端、接收客户端、消息中间件、以及建立连接模块;其中,建立连接模块用于建立服务器端与客户端的AMQP连接,AMQP连接与消息中间件整合在一起;服务器端用于根据AMQP连接生成消息数据;消息中间件用于根据所要AMQP连接推送消息数据。

本发明通过将服务器端和接收客户端通过消息中间件建立AMQP连接,并根据AMQP连接生成并发送消息数据,能够实现消息数据的实时推送,提高了消息推送的时效性;还通过消息中间件将消息数据推送至多个接收客户端,即通过消息中间件加入了多个接收客户端,实现了消息数据的负载均衡,减轻了服务器端的压力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的服务器的消息推送方法的流程图;

图2是根据本发明实施例的服务器的消息推送方法的服务器端与接收客户端通过消息中间件建立AMQP连接的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明的实施例,提供了一种服务器的消息推送方法。

如图1所示,根据本发明实施例的服务器的消息推送方法包括以下步骤:

步骤S101,建立服务器端与需要接收消息数据的接收客户端的AMQP(Advanced Message Queuing Protocol)连接,AMQP连接与消息中间件整合在一起;以及

步骤S103,根据AMQP连接推送消息数据。

通过上述技术方案,将服务器端和接收客户端通过消息中间件建立AMQP连接,即使用AMQP作为传输协议进行服务器和客户端间消息数据的传输,并根据AMQP连接生成并发送消息数据,能够实现消息数据的实时推送,提高消息推送的时效性。

在一个实施例中,接收客户端为多个;消息中间件为Rabbitmq模块。可通过消息中间件将消息数据推送至多个接收客户端,即通过消息中间件加入了多个接收客户端,实现了消息数据的负载均衡,减轻了服务器端的压力。

在一个实施例中,步骤S101包括:设置消息推送策略;根据消息推送策略建立服务器端与需要接收消息数据的接收客户端的AMQP连接。

在一个实施例中,步骤S103包括:服务器端根据AMQP连接生成并发送消息数据;消息中间件根据AMQP连接将消息数据发送至与服务器端建立AMQP连接的接收客户端或将消息数据丢弃。

进一步地,消息中间件根据AMQP连接将消息数据发送至与服务器端建立AMQP连接的接收客户端或将消息数据丢弃,包括:在至少有一个接收客户端与服务器端AMQP连接的情况下,消息中间件将消息数据发送至接收客户端;在没有接收客户端与服务器端AMQP连接的情况下,消息中间件将消息数据丢弃。

在一个实施例中,在服务器端发送消息数据之后,还包括:消息中间件根据AMQP连接对消息数据进行存储。

进一步地,消息中间件根据AMQP连接对消息数据进行存储,包括:在至少有一个接收客户端与服务器端AMQP连接的情况下,对消息数据进行存储;在没有接收客户端与服务器端AMQP连接的情况下,不对消息数据进行存储。

进一步地,消息中间件根据AMQP连接将消息数据发送至接收客户端或将消息数据丢弃,包括:在对消息数据进行存储的情况下,消息中间件将消息数据发送至接收客户端;在没有对消息数据进行存储的情况下,消息中间件将消息数据丢弃。

在一个实施例中,消息中间件将消息数据发送至接收客户端,包括:消息中间件通过POP模式、或通过Subscribe模式将消息数据发送至接收客户端。

下面结合图2对上述实施例进行具体说明。其中,所采用的消息中间件是Rabbitmq模块10。Rabbitmq模块10包括消息交换机(Exchange1、Exchange2)、消息列队载体(Queue1、Queue2)。服务器(A、B)与消息交换机(Exchange1、Exchange2)之间、消息列队载体(Queue1、Queue2)与客户端(C1、C2、C3)之间均可以通过建立消息通道20来进行消息数据的传递。

Rabbitmq模块10转发消息数据的机制是:消息交换机(Exchange1、Exchange2)用于转发消息数据,但不对消息数据进行存储。如果没有消息列队载体(Queue1、Queue2)通过消息通道20绑定到消息交换机(Exchange1、Exchange2)的话,消息交换机(Exchange1、Exchange2)会直接丢弃掉服务器(A、B)发送过来的消息数据。一个客户端(C1、C2、C3)若要接收消息数据,则要把对应连接的消息列队载体(Queue1、Queue2)绑定到指定的消息交换机(Exchange1、Exchange2)上,然后消息交换机(Exchange1、Exchange2)会把消息数据转发到消息列队载体(Queue1、Queue2)那里,消息列队载体(Queue1、Queue2)负责存储消息数据,客户端(C1、C2、C3)可以通过主动Pop或者是Subscribe之后被动回调的方式来从消息列队载体(Queue1、Queue2)中获取消息数据。

基于上述Rabbitmq模块10转发消息数据的机制,因此可以通过消息中间件设置和定制消息推送的策略。

其中,消息数据的推送流程为:建立服务器(A、B)与Rabbitmq模块10的连接;获取消息通道20以使服务器(A、B)与对应的消息交换机(Exchange1、Exchange2)连接;服务器(A、B)发送消息数据到Rabbitmq模块10;Rabbitmq模块10将消息数据推送到客户端(C1、C2、C3)。

根据本发明的实施例,还提供了一种服务器的消息推送系统,包括:服务器端、接收客户端、消息中间件、以及建立连接模块;建立连接模块,用于建立服务器端与接收客户端的AMQP连接,该AMQP连接与消息中间件整合在一起;服务器端用于根据AMQP连接生成消息数据;消息中间件用于根据AMQP连接推送消息数据。

综上所述,借助于本发明的上述技术方案,通过将服务器端和接收客户端通过消息中间件建立AMQP连接,并根据AMQP连接生成并发送消息数据,能够实现消息数据的实时推送,提高了消息推送的时效性;还通过消息中间件将消息数据推送至多个接收客户端,即通过消息中间件加入了多个接收客户端,实现了消息数据的负载均衡,减轻了服务器端的压力;另外还可以通过消息中间件设置消息数据的推送策略。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1