消息推送系统及消息推送方法与流程

文档序号:36644050发布日期:2024-01-06 23:28阅读:26来源:国知局
消息推送系统及消息推送方法与流程

本技术涉及消息推送领域,特别涉及一种消息推送系统及消息推送方法。


背景技术:

1、消息推送服务能保障消息提供者的消息及时地发送给相应的用户,如新闻或气象信息推送等。然而,在用户量不断增多的情况下,消息推送服务所需的资源消耗随之增多,消息的推送及时性和准确率难以保障。


技术实现思路

1、本技术提供了一种消息推送系统及消息推送方法。

2、本技术实施方式提供一种消息推送系统,包括服务器集群,所述服务器集群包括多台服务器;

3、所述服务器被配置为:

4、在与消息推送系统中的第一客户端建立通信连接的情况下,确定与所述第一客户端相对应的第一目标消息队列和目标消息订阅消费者对象;

5、在所述目标消息订阅消费者对象监测到所述第一目标消息队列存在第一待推送消息的情况下,向所述第一客户端推送所述第一待推送消息。

6、本技术实施方式提供的消息推送系统中,服务器集群中的任意一台服务器在与第一客户端建立通讯连接后,服务器可创建或生成与第一客户端相对应的第一目标消息队列和目标消息订阅消费者对象,或者说,生成专属于第一客户端的第一目标消息队列和目标消息订阅消费者对象。进而,在第一目标消息队列接收到或存储有第一待推送消息,且目标消息订阅消费者对象监测到第一待推送消息时,因第一目标消息队列专属于第一客户端,故第一目标消息队列中的第一待推送消息无需在集群进行消息广播,可直接由当前的、已与第一客户端建立通信连接的服务器将第一待推送消息发送给第一客户端。

7、如此,本技术实施方式基于服务器集群实现消息推送功能,使得消息推送的效率和可靠性能在一定程度上得到保障。同时,因在本技术实施方式中,客户端与服务器建立通讯连接后,服务器可确定与客户端对应的目标消息队列和目标消息订阅消费者对象,也即是专属于客户端的消息队列和消息订阅消费者对象,使得客户端的目标消息队列和目标消息订阅消费者对象均依赖于与客户端建立通讯的服务器,进而,存在待推送消息时,或者说,在进行消息推送时,服务器可根据依赖于自身的消息队列和消息订阅消费者对象,向对应的客户端推送消息,由此,消息队列中的消息可无需在服务器集群中广播,客户端的消息消费或消息推送均可由服务器集群中的一台服务器完成,能在一定程度上保障服务器资源的合理使用。

8、在某些实施方式中,所述服务器被配置为:

9、在与所述第一客户端建立通信连接的情况下,确定与所述第一客户端相对应的目标消息队列路由信息和所述目标消息订阅消费者对象;

10、根据所述目标消息队列路由信息确定所述第一目标消息队列。

11、如此,本技术实施方式使得第一目标消息队列的创建可依赖于目标消息队列路由信息的生成,进而,第一目标消息队列接收到的消息可基于目标消息队列路由信息和相应的交换机来发送,从而能在一定程度上保障第一目标消息队列接收消息的效率和安全。

12、在某些实施方式中,所述服务器被配置为在与所述第一客户端建立通信连接的情况下,根据所述第一客户端的客户端标识信息,确定所述目标消息队列路由信息和所述目标消息订阅消费者对象。

13、如此,本技术实施方式使得目标消息队列路由信息的确定或生成可根据客户端的客户端标识信息来完成,还使得目标消息订阅消费者对象和第一目标消息队列能通过客户端标识与客户端建立联系,由此,本技术实施方式可在接收到待推送给客户端的消息后,可根据客户端的客户端标识信息,可靠地将消息发送给客户端专属的第一目标消息队列,进而推送给客户端,使得消息推送可靠性能在一定程度上得到保障。

14、在某些实施方式中,所述服务器被配置为:

15、在获取到第二待推送消息的情况下,确定与所述第二待推送消息相对应的第二客户端;

16、在与所述第二客户端建立通讯连接的情况下,向与所述第二客户端相对应的第二目标消息队列,发送所述第二待推送消息。

17、如此,本技术实施方式使得待推送消息被确定相应的接收方后,也即是,确定第二客户端后,待推送消息可被发送至第二客户端专属的第二目标消息队列,从而能被第二客户端专属的目标消息订阅消费者对象监听到后,待推送消息可被发送给第二客户端,从而实现第二消息的推送,由此,使得各个客户端的消息可有专属的消息队列,从而在一定程度上保障了消息的可靠推送。

18、在某些实施方式中,所述系统还包括第一数据库,所述服务器配置为:

19、在所述第一数据库未存储所述第二待推送消息的情况下,将所述第二待推送消息存储至所述第一数据库;

20、在与所述第二客户端建立通讯连接的情况下,根据所述第一数据库,向第二目标消息队列发送所述第二待推送消息。

21、如此,本技术实施方式使得待推送消息在被执行推送操作前,可先利用第一数据库确定待推送消息是否已存储过,若否则可执行后续的推送操作,若是可忽略待推送消息,由此,能在一定程度上避免重复消息被重复推送给客户端的情况出现,保障了消息推送的合理执行,也能在一定程度上保障用户接收消息的使用体验。

22、在某些实施方式中,所述服务器被配置为在获取到所述第二待推送消息的情况下,根据所述第二待推送消息中的客户端标识信息,确定所述第二客户端。

23、如此,本技术实施方式使得服务器可根据第二待推送消息中的客户端标识信息确定出第二待推送消息对应的第二客户端,也即是消息接收端,从而能在一定程度上保障第二客户端的高效确定。

24、在某些实施方式中,所述系统还包括第二数据库;

25、所述服务器被配置为根据所述第二数据库,确定所述第二待推送消息的缓存消息。

26、如此,本技术实施方式基于在第二数据库存储第二待推送消息的缓存消息,也即是第二待推送消息的备份,进而,在消息推送失败的情况下,服务器还可根据第二待推送消息的缓存消息,再次推送第二待推送消息至客户端,从而在一定程度上保障第二待推送消息的可靠推送。

27、在某些实施方式中,所述服务器被配置为在所述第二目标消息队列接收到所述第二待推送消息的情况下,删除所述缓存消息。

28、如此,本技术实施方式使得服务器集群存储缓存消息的负荷得以下降,从而能在一定程度上保障服务器集群和消息推送系统的稳健运行。

29、在某些实施方式中,所述服务器被配置为在所述第二数据库保存所述缓存消息的保存时长高于预设时长的情况下,向所述第二目标消息队列发送所述缓存消息。

30、如此,本技术实施方式的服务器可在缓存消息的保存时长高于预设时长的情况下,认定第二待推送消息未被成功发送给第二目标消息队列,进而,可根据缓存消息,再次执行向第二目标消息队列发送第二待推送消息的操作,从而能在一定程度上保障第二待推送消息能被可靠地推送给相应的第二客户端。

31、在某些实施方式中,所述服务器被配置为在所述第二目标消息队列未接收到所述缓存消息的情况下,向预设的备份消息队列发送所述缓存消息,及删除所述第二数据库中的所述缓存消息。

32、如此,本技术实施方式使得服务器在根据缓存消息,重新对第二客户端专属的第二目标消息队列执行消息推送操作,且第二目标消息队列未能接收到缓存消息的情况下,本技术实施方式可将缓存消息存储至预设的备份消息队列,以使得后续能通过备份消息队列中的消息再次执行消息重发,由此,在一定程度上保障消息推送的可靠进行。

33、在某些实施方式中,所述服务器被配置为在所述第二目标消息队列中的待推送消息的数量高于预设数量,且所述第二目标消息队列接收到新的待推送消息的情况下,将所述第二目标消息队列中的存放时长最长的目标待推送消息发送至所述备份消息队列,及删除所述第二目标消息队列中的所述目标待推送消息。

34、如此,本技术实施方式使得消息队列存储的消息在超过预设数量后,可将消息队列中存储时长最长的消息存储至备份消息队列,由此,服务器在与客户端建立通讯连接后,可根据备份消息队列和客户端专属的目标消息队列,向客户端推送消息,从而能在一定程度上保障消息的可靠推送。

35、在某些实施方式中,所述服务器被配置为在与第三客户端建立通讯连接的情况下,根据所述备份消息队列,向与所述第三客户端对应的第三目标消息队列,发送所述备份消息队列中与所述第三客户端相对应的备份消息,及在所述第三目标消息队列接收到所述备份消息的情况下,删除所述备份消息队列中与所述第三客户端对应的备份消息。

36、如此,本技术实施方式使得服务器可在与客户端建立通讯连接后,可将客户端的目标消息队列中的消息,及备份消息队列中与客户端相对应的备份消息,从而保障客户端未上线前的消息,或是未被成功发送给客户端的消息均可向客户端发送,从而能在一定程度上保障消息的可靠发送。

37、在某些实施方式中,所述系统还包括服务器集群网关模块,所述服务器集群网关模块配置为:在接收到用于与服务器建立通讯连接的请求,或接收到用于推送消息的请求的情况下,根据请求发起方的网络地址信息确定目标服务器,及向所述目标服务器发送所述请求;

38、所述服务器被配置为:

39、根据接收到的请求,与所述请求发起方建立通讯连接,或推送所述请求发起方的消息。

40、如此,本技术实施方式基于服务器集群网关模块,使得用于与服务器建立通讯连接的请求,和用于推送消息的请求能根据网络地址信息分配给相应的目标服务器,而服务器在接收到请求后,即可执行相应的操作如连接建立和消息推送,由此,使得服务器集群中的资源能在一定程度上得到可靠分配,从而保障了服务器、服务器集群及消息推送系统的稳健运行。

41、在某些实施方式中,所述服务器集群网关模块被配置为确定预设数量的可选服务器,及所述网络地址信息的映射数值,根据所述映射数值相对于所述预设数量的取模结果,确定所述可选服务器中的所述目标服务器。

42、如此,本技术实施方式使得相同请求发起方在多个请求后,因网络地址信息对应的映射值相同,进而通过映射值得到取模结果也相同,则在可用服务器不变的情况相爱,目标服务器为同一个服务器,由此,相同请求发起方发起的多个请求均可相同的服务器处理,相同请求发起方发起多个请求后,无需与服务器集群中的多个服务器建立通讯连接,在一定程度上保障了服务器集群和消息推送系统中资源的合理使用。

43、在某些实施方式中,所述服务器集群网关模块配置为根据所述服务器集群中每个所述服务器的状态信息,确定所述可选服务器。

44、如此,本技术实施方式使得服务器集群网关模块可根据集群中每个服务器的状态信息来确定可选服务器,从而能在一定程度上保障确定出的可选服务器能合理或可靠地执行请求的情况出现,保障了消息推送系统的稳健运行。

45、在某些实施方式中,所述服务器集群网关模块配置为根据所述服务器集群中每个所述服务器的状态信息确定每个所述服务器的权重,及根据每个所述服务器的所述权重和所述状态信息,确定所述可选服务器。

46、如此,本技术实施方式使得可选服务器的确定将基于各个服务器的权重和状态信息来完成,在一定程度上能保障可选服务器的可靠确定。

47、本技术实施方式提供一种消息推送方法,用于上述的消息推送系统,所述系统包括所述服务器集群,所述服务器集群包括多台服务器,所述方法包括:

48、在与消息推送系统中的第一客户端建立通信连接的情况下,确定与所述第一客户端相对应的第一目标消息队列和目标消息订阅消费者对象;

49、在所述目标消息订阅消费者对象监测到所述第一目标消息队列存在第一待推送消息的情况下,向所述第一客户端推送所述第一待推送消息。

50、本技术实施方式还提供一种服务器,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现上述的消息推送方法。

51、本技术实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被一个或多个处理器执行时,实现上述的消息推送方法。

52、本技术实施方式提供的消息推送方法、服务器及计算机可读存储介质,基于服务器集群实现消息推送功能,使得消息推送的效率和可靠性能在一定程度上得到保障。同时,因在本技术实施方式中,客户端与服务器建立通讯连接后,服务器可确定与客户端对应的目标消息队列和目标消息订阅消费者对象,也即是专属于客户端的消息队列和消息订阅消费者对象,使得客户端的目标消息队列和目标消息订阅消费者对象均依赖于与客户端建立通讯的服务器,进而,存在待推送消息时,或者说,在进行消息推送时,服务器可根据依赖于自身的消息队列和消息订阅消费者对象,向对应的客户端推送消息,由此,消息队列中的消息可无需在服务器集群中广播,客户端的消息消费或消息推送均可由服务器集群中的一台服务器完成,能在一定程度上保障服务器资源的合理使用。

53、本技术的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实施方式的实践了解到。

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