CN114374705A - 服务集群和消息推送方法 - Google Patents
服务集群和消息推送方法 Download PDFInfo
- Publication number
- CN114374705A CN114374705A CN202210010460.7A CN202210010460A CN114374705A CN 114374705 A CN114374705 A CN 114374705A CN 202210010460 A CN202210010460 A CN 202210010460A CN 114374705 A CN114374705 A CN 114374705A
- Authority
- CN
- China
- Prior art keywords
- message
- target
- service
- terminal
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Abstract
本申请公开了一种服务集群及消息推送方法,属于通信技术领域。所述服务集群包括推送节点和多个服务节点,服务节点用于与终端建立长连接;推送节点用于:在接收到目标消息后,向该多个服务节点发送目标消息;其中,目标消息包括消息内容和目标终端的标识;服务节点用于:在基于目标终端的标识,确定服务节点与该目标终端建立有长连接后,通过该长连接向目标终端发送消息内容。本申请解决了服务集群的消息推送效果较差的问题。本申请用于进行消息推送。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种服务集群和消息推送方法。
背景技术
随着通信技术的发展,服务器需服务的终端越来越多,服务集群由于其服务能力较强,被广泛应用于代替单个服务器为各个终端提供服务。
服务集群包括多个服务节点,每个服务节点可以包括一个或多个服务器。服务集群与终端可以建立有长连接,进而服务集群与终端可以实现数据的双向推送。
但是,相关技术中服务集群向连接的终端进行消息推送的效果较差。
发明内容
本申请提供了一种服务集群及消息推送方法,可以解决服务集群向连接的终端进行消息推送的效果较差的问题。所述技术方案如下:
一方面,提供了一种服务集群,所述服务集群包括推送节点和多个服务节点,所述服务节点用于与终端建立长连接;
所述推送节点用于:在接收到目标消息后,向所述多个服务节点发送所述目标消息;其中,所述目标消息包括消息内容和目标终端的标识;
所述服务节点用于:在基于所述目标终端的标识,确定所述服务节点与所述目标终端建立有长连接后,通过所述长连接向所述目标终端发送所述消息内容。
另一方面,提供了一种消息推送方法,用于服务集群,所述服务集群包括推送节点和多个服务节点,所述服务节点用于与终端建立长连接;所述方法包括:
所述推送节点在接收到目标消息后,向所述多个服务节点发送所述目标消息;其中,所述目标消息包括消息内容和目标终端的标识;
所述服务节点在基于所述目标终端的标识,确定所述服务节点与所述目标终端建立有长连接后,通过所述长连接向所述目标终端发送所述消息内容。
本申请提供的技术方案带来的有益效果至少包括:
本申请中,服务集群中的推送节点在接收到目标消息后,可以将该目标消息发送至服务集群中的多个服务节点。由各个服务节点确定是否与该目标消息指示的目标终端长连接,进而与该目标终端长连接的服务节点可以将该目标消息的消息内容发送至目标终端。如此,可以保证将服务集群接收到的目标消息有效推送至目标终端,避免无法确定与目标终端建立长连接的服务节点,进而无法实现目标消息的推送的情况,保证了服务集群的消息推送效果。
附图说明
图1是本申请实施例提供的一种消息推送系统的结构示意图;
图2是本申请实施例提供的一种消息推送方法的流程图;
图3是本申请实施例提供的另一种消息推送方法的流程图;
图4是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着通信技术的发展,对于通信服务的高效提供的要求也越来越高,服务集群由于其具备动态扩展、高并发以及高可用的特性,因此被广泛应用于为终端提供服务。图1是本申请实施例提供的一种消息推送系统的结构示意图。如图1所示,该消息推送系统可以包括服务集群10、终端20和外部设备30。终端20和外部设备30均可以与服务集群10连接。服务集群10可以与终端20建立有长连接,如该长连接可以通过WebSocket协议实现。可选地,服务集群10与终端20之间可以通过有线网络或者无线网络连接,其中,有线网络可以包括但不限于:以太网,无线网络可以包括但不限于:无线保真(英文:Wireless Fidelity;简称:WIFI)、蓝牙、红外、紫蜂(英文:Zigbee)和数据网络等。
服务集群10可以向终端20推送消息,终端20也可以向服务集群10推送消息。服务集群10可以为终端20提供服务。可选地,终端20中可以安装有该服务集群10对应的应用程序,终端20可以运行该应用程序以请求服务集群10提供相应的服务。或者终端20可以访问服务集群10对应的网页,终端20可以访问该网页以请求服务集群10提供相应的服务。可选地,外部设备30可以向服务集群10推送消息,以指示服务集群10将该消息推送至其连接的某一终端20。终端20可以为电脑,或者也可以为智能手机、平板电脑、计算机、笔记本电脑或者其他电子设备。消息推送系统中终端20的数量可以为多个,本申请实施例仅对消息推送系统中的三个终端20进行示意。外部设备30可以为服务器,服务集群或者也可以为终端,本申请实施例不做限定。
服务集群10可以包括推送节点101和多个服务节点102,该多个服务节点102均可以与该推送节点101连接。推送节点101或每个服务节点102均可以为单独的服务器;或者推送节点101和服务节点102也可以部署在多个服务器中,由多个服务器中的不同模块组成,本申请实施例不作限定。推送节点101用于与服务集群10外部的设备进行信息交互,推送节点101也可以称为服务集群10的入口服务器。服务节点102用于实际与终端20进行连接,进行任务的处理为终端20提供服务。可选地,服务集群10还可以包括管理节点,该管理节点可以与该多个服务节点102连接,以对该多个服务节点101进行管理与控制。如管理节点可以将待处理的任务分配给合适的服务节点101处理,以实现服务集群的负载均衡。
终端20与服务集群10长连接,实际上是与服务集群10中的一个服务节点102长连接。终端20与服务节点102建立长连接后,该长连接的通信通道具有一定的生命周期,在该生命周期中终端20仅可通过该通信通道接收消息。故在该生命周期中服务集群10仅可通过该服务节点102向该终端20推送消息。但是,服务集群10中的推送节点101在接收到要推送至服务集群10连接的某一终端20的消息时,该推送节点101无法确定该终端连接的服务节点102,进而较难将该消息精准地推送至该终端20。因此,服务集群10的消息推送效果较差。
本申请实施例提供了一种服务集群和消息推送方法,可以保证将服务集群中推送节点接收到的消息推送至对应的终端,保证了服务集群的消息推送效果。
图2是本申请实施例提供的一种消息推送方法的流程图,该方法可以用于图1所示的服务集群10,该服务集群10包括推送节点和多个服务节点。如图2所示,该方法可以包括:
步骤201、推送节点在接收到目标消息后,向服务集群中的多个服务节点发送目标消息,目标消息包括消息内容和目标终端的标识。
本申请实施例中的目标终端可以为服务集群连接的任一终端。推送节点可以接收服务集群的外部设备向服务集群连接的任一终端推送的消息(也即目标消息)。该消息需指示要推送至的终端(也即目标终端),如通过携带的目标终端的标识来指示该目标终端。推送节点在接收到目标消息后,需将该目标消息推送至目标终端连接的服务节点,以供该服务节点将目标消息推送至目标终端,以实现外部设备向目标终端的消息推送。本申请实施例中,推送节点可以将该目标消息发送至服务集群中的所有服务节点,如此可以保证目标消息发送至目标终端连接的服务节点。
步骤202、服务节点在基于目标终端的标识,确定服务节点与该目标终端建立有长连接后,通过该长连接向目标终端发送消息内容。
需要说明的是,服务集群中的每个服务节点均需执行步骤202。服务集群中的推送节点将目标消息发送至服务集群中的各个服务节点后,每个服务节点均可以获取到目标消息中目标终端的标识。每个服务节点均可以基于该标识,检测是否与该标识指示的目标终端长连接。服务节点在确定与目标终端长连接后,可以将目标消息中的消息内容发送至该目标终端,如此即可实现将要推送至目标终端的消息内容精准地推送至目标终端。
综上所述,本申请实施例提供的消息推送方法中,服务集群中的推送节点在接收到目标消息后,可以将该目标消息发送至服务集群中的多个服务节点。由各个服务节点确定是否与该目标消息指示的目标终端长连接,进而与该目标终端长连接的服务节点可以将该目标消息的消息内容发送至目标终端。如此,可以保证将服务集群接收到的目标消息有效推送至目标终端,避免无法确定与目标终端建立长连接的服务节点,进而无法实现目标消息的推送的情况,保证了服务集群的消息推送效果。
图3是本申请实施例提供的另一种消息推送方法的流程图,该方法可以用于图1所示的服务集群10,该服务集群10包括推送节点和多个服务节点,图3以一个服务节点为例进行介绍。如图3所示,该方法可以包括:
步骤301、服务节点将与该服务节点建立有长连接的终端的标识存入目标存储空间。
服务集群中的每个服务节点均可以对应有目标存储空间。可选地,每个服务节点对应的目标存储空间可以位于该服务节点的内存中。每个服务节点可以获取与其建立有长连接的终端的标识,并将该终端的标识存入目标存储空间,以维护终端与该服务节点之间的长连接。服务节点可以通过对应的目标存储空间中存储的标识,确定与该服务节点建立有长连接的各个终端。可选地,终端在与服务集群建立长连接时,实际可以与该服务集群中任一服务节点建立长连接。或者,与终端建立长连接的服务节点也可以由服务集群中的管理节点分配。
步骤302、服务节点对目标存储空间中的标识进行更新。
服务集群中的每个服务节点可以基于该服务节点与终端的连接状况,对该服务节点对应的目标存储空间中的标识进行更新,以保证目标存储空间中存储的标识指示的终端与服务节点实际建立有长连接的终端一致。
可选地,与服务节点建立有长连接的终端(如目标存储空间中的标识指示的终端),可以周期性地向服务节点发送心跳信号,相应地服务节点可以周期性地接收终端发送的心跳信号。服务节点在接收到终端发送的心跳信号后,可以确定终端与服务节点仍处于连接状态。服务节点可以获取时长阈值。若服务节点在接收到某终端发送的心跳信号后,超过时长阈值未再次接收到该终端发送的心跳信号,则服务节点可以确定该终端已断开连接。该时长阈值可以大于或等于终端发送心跳信号的周期。例如服务节点可以获取心跳信号的发送周期时长,将该时长作为时长阈值。如此,若服务节点在本该接收到某终端发送的心跳信号时未接收到该心跳信号,则确定该终端已与服务节点断开连接。
服务节点在确定与某终端断开连接后,可以删除目标存储空间中存储的该终端的标识,以对目标存储空间中的标识进行更新。可选地,服务节点还可以关闭与该终端的连接,并清理内存中的与该终端的会话相关信息。可选地,服务节点在与新的终端建立长连接后,也可以获取该终端的标识。进而在该服务节点对应的目标存储空间中添加该终端的标识,以对目标存储空间中的标识进行更新。
步骤303、推送节点接收外部设备发送的目标消息,该目标消息包括消息内容、目标终端的标识和顺序指示标识。
外部设备可以向服务集群发送目标消息。服务集群可以针对其连接的终端统一提供进行消息推送的业务接口,以下简称为消息推送接口。外部设备可以调用服务集群的消息推送接口向服务集群发送目标消息。该消息推送接口可以部署在推送节点上,进而推送节点可以通过该消息推送接口接收到外部设备发送的目标消息。外部设备向服务集群发送目标消息的目的为向服务集群连接的某一终端发送消息。该目标消息可以至少包括具体的消息内容,以及消息内容需发送至的目标终端的标识。该目标终端的标识用于供服务集群确定该消息内容需发送至的目标终端。可选地,目标终端的标识可以为目标终端的媒体存取控制(Media Access Control,MAC)地址。
可选地,该目标消息还可以包括顺序指示标识,该顺序指示标识用于指示向目标终端发送的消息中该目标消息的顺序。需要说明的是,外部设备发送至目标终端的各个信息可以满足一定的顺序要求,该各个信息需按照该顺序向目标终端依次发送。外部设备可以对其向目标终端发送的各个消息均设置顺序指示标识,基于各个消息的顺序指示标识可以确定各个消息的发送顺序。外部设备针对各个终端均可以分别进行对应消息的顺序指示标识。示例地,顺序指示标识可以为消息版本号,对于依次发送的各个消息该消息版本号可以依次递增,先发送的消息中的消息版本号小于后发送的消息中的消息版本号。如外部设备需向目标设备依次发送三个消息,该三个消息的消息版本号可以依次为1、2和3。该消息版本号仅为示例,具体的消息版本号也可以为其他形式的数值,本申请实施例不做限定。
需要说明的是,本申请实施例中所述的目标消息为推送节点接收到的外部设备发送的任一消息。针对推送节点接收到的所有消息,服务集群均可以进行与目标消息相同的操作。
步骤304、推送节点生成目标消息的唯一标识。
推送节点在接收到任一消息后均可以生成该消息的唯一标识。示例地,该唯一标识可以为通用唯一识别码(Universally Unique Identifier,UUID),该唯一标识可以包括:该推送节点的标识、该推送节点接收目标消息的时间戳以及随机数。该推送节点的标识可以包括该推送节点的物理信息,如该推动节点的物理地址。可选地,推送节点也可以通过其他信息作为消息的唯一标识,如可以将消息内容进行一定地计算所得的信息作为该唯一标识,本申请实施例不做限定。
步骤305、推送节点将目标消息及其唯一标识写入消息队列。
服务集群中的推送节点可以针对该服务集群,在内存中确定一特定的消息队列。推送节点在接收到外部设备发送的需向服务集群连接的终端推送的任一消息(如目标消息)后,均可以将该消息写入该消息队列中。该消息队列用于对外部设备向终端推送的消息进行缓冲。写入消息队列中的消息具有高可靠性,可以避免该消息丢失。可选地,推送节点可以将接收的每个消息及其唯一标识一同存储于消息队列中,消息队列中可以存储每个消息的消息内容、顺序指示标识、唯一标识以及该消息对应的终端的标识。
步骤306、在向服务集群中的各个服务节点发送消息队列中目标消息之前写入的消息后,推送节点向各个服务节点发送目标消息及其唯一标识。
消息队列遵从先入先出的规则,也即是先写入该消息队列的消息将先被处理。推送节点可以按照消息队列中各个消息的写入顺序,向服务集群中的所有服务节点依次发送该消息队列中的各个消息及其唯一标识。示例地,推送节点依次将消息a,b和c及每个消息的唯一标识写入消息队列,则推送节点可以先向服务集群中的各个服务节点发送消息a及其唯一标识,之后再向服务集群中的各个服务节点发送消息b及其唯一标识,最后向服务集群中的各个服务节点发送消息c及其唯一标识。本申请实施例中,对于消息队列中的目标消息,推送节点可以将消息队列中目标消息之前写入的消息及其唯一标识均发送向服务集群中的各个服务节点后,再向各个服务节点发送目标消息及其唯一标识。
可选地,推送节点可以通过点对点发送的方式,将目标消息精准地发送至服务集群中的各个服务节点。或者,推送节点也可以通过广播的方式,将该目标消息发送至服务集群中的各个服务节点。本申请实施例中,服务集群中的各个服务节点均可以监听推送节点广播的消息,以获取推送节点广播的消息。推送节点在向服务集群中的各个服务节点发送消息队列中的任一消息后,均可以删除消息队列中的该消息。
本申请实施例中,推送节点将外部设备发送的消息写入消息队列,再按照消息的写入顺序依次发送消息队列中的消息。如此可以避免削峰现象的发生,提高消息的推送可靠性。削峰现象也即是设备在某一个时刻接收到大量的消息,该设备在该时刻的流量消耗突然剧增,此时设备对这些消息的处理导致部分消息丢失的现象。本申请实施例中推送节点将消息写入消息队列进行缓存,进而挨个处理各个消息,可以避免推送节点的流量消耗突增,保证推送节点对消息的处理效果较为稳定,可以提高消息的推送可靠性。
可选地,步骤305与步骤306可以分别由推送节点中的两个不同模块执行。执行步骤304的模块可以作为消息的生产者,将生产的消息(也即是从外部设备接收的消息)写入消息队列。执行步骤306的模块可以作为消息的消费者,通过广播模式或点对点模式消费消息,将消息队列中的消息发送至各个服务节点。
步骤307、服务节点检测目标存储空间中是否存储有目标终端的标识。在确定目标存储空间中存储有目标终端的标识时,执行步骤308;在确定目标存储空间中未存储有目标终端的标识时,执行步骤311。
服务集群中的每个服务节点在接收到推送节点发送的目标消息后,均可以解析目标消息,以获取目标消息中的消息内容、目标终端的标识以及顺序指示标识。之后,服务节点可以基于该目标终端的标识,判断是否与该目标终端建立有长连接。由于服务节点将与其建立有长连接的终端的标识均存储于对应的目标存储空间中,故服务节点可以通过检测目标存储空间中是或否存储有目标终端的标识,来判断是否与该目标终端建立有长连接。服务节点在确定目标存储空间中存储有目标终端的标识时,确定该服务节点与目标终端建立有长连接,进而进一步判断是否向目标终端发送目标消息。服务节点在确定目标存储空间中未存储有目标终端的标识时,确定服务节点未与目标终端建立有长连接,进而可以直接放弃向目标终端发送目标消息。
步骤308、服务节点检测是否记录有目标消息的唯一标识。在确定记录有目标消息的唯一标识时,执行步骤309;在确定未记录有目标消息的唯一标识时,执行步骤311。
本申请实施例中,服务节点在向每个终端发送任一消息后,均可以针对该终端记录该消息的唯一标识。服务节点在接收到目标消息后,可以检测针对目标终端记录的各个消息的唯一标识中是否存在该目标消息的唯一标识,以判断是否已向目标终端发送过该目标消息。当服务节点确定未记录有该目标消息的唯一标识时,可以确定未向目标终端发送过目标消息,进而可以进一步判断是否向目标终端发送目标消息。当服务节点确定记录有该目标消息的唯一标识时,可以确定已向目标终端发送过目标消息,进而可以放弃向目标终端发送目标消息,以避免对同一消息的重复发送。
需要说明的是,相关技术中服务节点向终端发送消息后,需要向推送节点发送响应,以告知推送节点已将该消息发送至该终端,也即是完成该消息的消费。此时,若网络不稳定,则推送节点可能无法接收到该响应。推送节点在超时未接收到该响应后会向服务节点重新发送该消息,进而服务节点会重复向终端发送该消息,有可能对终端的使用效果产生影响。
本申请实施例中,服务节点可以记录其向终端发送的消息的唯一标识,且在每次接收到一个消息后均基于该消息的唯一标识,判断该消息是否已被发送,进而在确定消息未被发送时才向终端发送该消息。如此可以避免向终端重复发送某消息,提高终端的信息推送效果以及使用效果。
步骤309、服务节点基于目标消息的顺序指示标识,判断目标消息是否为需向目标终端发送的最新消息。在目标消息为需向目标终端发送的最新消息时,执行步骤310;在目标消息不为需向目标终端发送的最新消息时,执行步骤311。
示例地,顺序指示标识为消息版本号。服务节点可以记录向该目标终端发送过的各消息的消息版本号中的最大的消息版本号。服务节点可以判断目标消息的消息版本号是否大于记录的该最大的消息版本号。服务节点在确定目标消息的消息版本号大于记录的该最大的消息版本号时,也即目标消息中的消息版本号为接收到的针对目标终端的最大的消息版本号时,可以确定目标消息为需向目标终端发送的最新消息。服务节点在确定目标消息的消息版本号小于或等于记录的该最大的消息版本号时,可以确定目标消息不为需向目标终端发送的最新消息。
需要说明的是,相关技术中由于网络质量的影响,服务节点可能先接收到需在后向终端发送的消息,之后才接收到需在先向终端发送的消息。但是,服务节点会在接收到某消息时直接向终端发送该消息。如应用程序的某账号在段时间内依次上线和下线,但是终端可能先接收到账号下线的消息,之后才接收到该账号上线的消息。如此导致终端接收的消息的顺序发生混乱,造成终端的消息推送效果较差,终端的使用效果较差。
本申请实施例中,服务节点可以基于消息的顺序指示标识,来确定该消息是否应当在已发送的消息之后发送;进而在确定该消息为需向目标终端发送的最新消息时,才向终端发送该消息。如此可以保证消息的顺序发送,避免向终端发送过期消息,提高终端的消息推送效果,提高终端的使用效果。
步骤310、服务节点向目标终端发送目标消息中的消息内容。
本申请实施例中,服务集群中与目标终端建立有长连接的服务节点,在基于目标终端的标识确定与目标终端建立有长连接,且确定目标消息未被发送过,以及目标消息为需向目标终端发送的最新消息后,将目标消息中的消息内容发送至目标终端。如此即可实现将外部设备要推送至目标终端的消息内容,精准地推送至目标终端。且同时可以避免消息的重复发送,保证消息推送的精确性,还可以保证消息的顺序发送,提高消息推送效果。
可选地,本申请实施例中服务节点也可以不判断目标消息是否被发送过,仅基于目标终端的标识以及目标消息的顺序指示标识,来判断是否向终端发送目标消息。可选地,服务节点也可以不判断目标消息是否为需向目标终端发送的最新消息,仅基于目标终端的标识以及目标消息的唯一标识,来判断是否向终端发送目标消息。
步骤311、服务节点丢弃目标消息。
服务集群中的任一服务节点在基于目标终端的标识确定未与目标终端建立有长连接,或者确定目标消息已被发送,或者目标消息并非需发送的最新消息(也即是目标消息为过期消息),则可以丢弃目标消息,不再对该目标消息进行其他处理。
可选地,本申请实施例中服务集群连接的终端中可以安装有服务集群对应的应用程序,或访问服务集群对应的网页。该服务集群可以用于为该应用程序提供相应的服务,以保证该应用程序在终端上正常运行。如该应用程序可以为智慧社区应用程序,该服务集群用于支持智慧社区的正常实现。该终端与智慧社区中的物业人员或住户使用的个人电脑或者智能手机。
示例地,该服务集群可以在多种场景下主动向终端推送消息。如服务集群可以将社区设备(如供电设备、门禁设备以及监控设备等)的报警信息或者其他类型的信息,发送至物业人员的电脑端网页或者手机端应用程序,提醒物业人员进行处理。又示例地,终端也可以向服务集群上报消息。如住户家中的设备发生故障,住户可以通过终端向服务集群发送该设备的故障消息。服务集群可以将该故障消息转发至物业人员的终端,以供物业人员基于该故障消息为该住户提供服务。
又示例地,终端可以通过该服务集群获取外部系统的信息。如住户可以通过终端安装的智能社区应用程序,向服务集群发送供电局的供电情况的查询请求。服务集群可以与供电局的信息系统建立连接,以获取该供电情况,进而将该供电情况的信息返回至终端。又示例地,终端可以通过该服务集群接收外部系统的消息。如外部系统可以与服务集群建立连接,以向服务集群发送针对该智慧社区中某一终端的消息,进而服务集群可以基于图3所示的方法,将该消息推送至对应的终端。
综上所述,本申请实施例提供的消息推送方法中,服务集群中的推送节点在接收到目标消息后,可以将该目标消息发送至服务集群中的多个服务节点。由各个服务节点确定是否与该目标消息指示的目标终端长连接,进而与该目标终端长连接的服务节点可以将该目标消息的消息内容发送至目标终端。如此,可以保证将服务集群接收到的目标消息有效推送至目标终端,避免无法确定与目标终端建立长连接的服务节点,进而无法实现目标消息的推送的情况,保证了服务集群的消息推送效果。
图4是本申请实施例提供的一种服务器的结构示意图。该服务器可以为上述的推送节点101或者服务节点102。所述服务器包括中央处理单元(CPU)401、包括随机存取存储器(RAM)402和只读存储器(ROM)403的系统存储器404,以及连接系统存储器404和中央处理单元401的系统总线405。所述服务器400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)406,和用于存储操作系统413、应用程序414和其他程序模块415的大容量存储设备407。
所述基本输入/输出系统406包括有用于显示信息的显示器408和用于用户输入信息的诸如鼠标、键盘之类的输入设备409。其中所述显示器408和输入设备409都通过连接到系统总线405的输入输出控制器410连接到中央处理单元401。所述基本输入/输出系统406还可以包括输入输出控制器410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器410还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备407通过连接到系统总线405的大容量存储控制器(未示出)连接到中央处理单元401。所述大容量存储设备407及其相关联的计算机可读介质为服务器400提供非易失性存储。也就是说,所述大容量存储设备407可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器404和大容量存储设备407可以统称为存储器。
根据本发明的各种实施例,所述服务器400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器400可以通过连接在所述系统总线405上的网络接口单元411连接到网络412,或者说,也可以使用网络接口单元411来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理单元401通过执行该一个或一个以上程序来实现图2或图3所示的方法。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行上述实施例提供的消息推送方法,例如图2或图3所示的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例提供的消息推送方法,例如图2或图3所示的方法。
应当理解,本申请中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。本申请中术语“至少一个”指的是一个或多个,“多个”指“两个或两个以上”。
需要说明的是,本申请实施例提供的方法实施例能够与相应的设备实施例相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种服务集群,其特征在于,所述服务集群包括推送节点和多个服务节点,所述服务节点用于与终端建立长连接;
所述推送节点用于:在接收到目标消息后,向所述多个服务节点发送所述目标消息;其中,所述目标消息包括消息内容和目标终端的标识;
所述服务节点用于:在基于所述目标终端的标识,确定所述服务节点与所述目标终端建立有长连接后,通过所述长连接向所述目标终端发送所述消息内容。
2.根据权利要求1所述的服务集群,其特征在于,所述推送节点用于:
在接收到目标消息后,将所述目标消息写入消息队列;
在向所述多个服务节点发送所述消息队列中所述目标消息之前写入的消息后,向所述多个服务节点发送所述目标消息。
3.根据权利要求1所述的服务集群,其特征在于,
所述推送节点还用于:在接收到所述目标消息后,生成所述目标消息的唯一标识;在向所述多个服务节点发送所述目标消息时,向所述多个服务节点发送所述目标消息的唯一标识;
所述服务节点用于:记录发送至所述目标终端的各个消息的唯一标识;在确定所述服务节点与所述目标终端建立有长连接,且记录的唯一标识中不存在所述目标消息的唯一标识后,通过所述长连接向所述目标终端发送所述消息内容。
4.根据权利要求3所述的服务集群,其特征在于,所述唯一标识包括所述推送节点的标识、所述推送节点接收所述目标消息的时间戳以及随机数。
5.根据权利要求1所述的服务集群,其特征在于,所述目标消息还包括顺序指示标识,所述顺序指示标识用于指示向所述目标终端发送的消息中所述目标消息的顺序;所述服务节点用于:
在基于所述顺序指示标识确定所述目标消息为需向所述目标终端发送的最新消息时,通过所述长连接向所述目标终端发送所述消息内容。
6.根据权利要求5所述的服务集群,其特征在于,所述顺序指示标识为消息版本号,先发送的消息中的消息版本号小于后发送的消息中的消息版本号;所述服务节点用于:
在所述目标消息中的消息版本号为接收到的针对所述目标终端的最大的消息版本号时,确定所述目标消息为向所述目标终端发送的最新消息。
7.根据权利要求1至6任一所述的服务集群,其特征在于,所述推送节点用于:
向所述多个服务节点广播所述目标消息。
8.根据权利要求1至6任一所述的服务集群,其特征在于,所述服务节点还用于:
将与所述服务节点建立有长连接的终端的标识存入目标存储空间;
在确定所述目标存储空间中存储有所述目标终端的标识时,确定所述服务节点与所述目标终端建立有长连接。
9.根据权利要求8所述的服务集群,其特征在于,所述服务节点还用于:
周期性地接收所述目标存储空间中的标识指示的终端发送的心跳信号;
在超过时长阈值未接收到所述目标存储空间中任一标识指示的终端发送的心跳信号时,删除所述目标存储空间中的所述任一标识;
其中,所述时长阈值大于或等于所述服务节点接收所述心跳信号的周期。
10.一种消息推送方法,其特征在于,用于服务集群,所述服务集群包括推送节点和多个服务节点,所述服务节点用于与终端建立长连接;所述方法包括:
所述推送节点在接收到目标消息后,向所述多个服务节点发送所述目标消息;其中,所述目标消息包括消息内容和目标终端的标识;
所述服务节点在基于所述目标终端的标识,确定所述服务节点与所述目标终端建立有长连接后,通过所述长连接向所述目标终端发送所述消息内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210010460.7A CN114374705A (zh) | 2022-01-06 | 2022-01-06 | 服务集群和消息推送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210010460.7A CN114374705A (zh) | 2022-01-06 | 2022-01-06 | 服务集群和消息推送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114374705A true CN114374705A (zh) | 2022-04-19 |
Family
ID=81142724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210010460.7A Pending CN114374705A (zh) | 2022-01-06 | 2022-01-06 | 服务集群和消息推送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114374705A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378926A (zh) * | 2022-08-16 | 2022-11-22 | 山东浪潮超高清智能科技有限公司 | 一种移动终端设备下的应急广播推送方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及系统 |
CN107465802A (zh) * | 2016-06-03 | 2017-12-12 | 北京融聚世界网络科技有限公司 | 一种显示通讯消息的方法、装置和系统 |
CN108449256A (zh) * | 2018-02-10 | 2018-08-24 | 深圳壹账通智能科技有限公司 | 消息推送的处理方法、装置、计算机设备及存储介质 |
CN110417915A (zh) * | 2019-08-22 | 2019-11-05 | 北京大米科技有限公司 | 一种推送消息传输方法、装置、存储介质及电子设备 |
WO2019218479A1 (zh) * | 2018-05-14 | 2019-11-21 | 平安科技(深圳)有限公司 | 一种信息的发送方法及设备 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
-
2022
- 2022-01-06 CN CN202210010460.7A patent/CN114374705A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107465802A (zh) * | 2016-06-03 | 2017-12-12 | 北京融聚世界网络科技有限公司 | 一种显示通讯消息的方法、装置和系统 |
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及系统 |
CN108449256A (zh) * | 2018-02-10 | 2018-08-24 | 深圳壹账通智能科技有限公司 | 消息推送的处理方法、装置、计算机设备及存储介质 |
WO2019218479A1 (zh) * | 2018-05-14 | 2019-11-21 | 平安科技(深圳)有限公司 | 一种信息的发送方法及设备 |
CN110417915A (zh) * | 2019-08-22 | 2019-11-05 | 北京大米科技有限公司 | 一种推送消息传输方法、装置、存储介质及电子设备 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378926A (zh) * | 2022-08-16 | 2022-11-22 | 山东浪潮超高清智能科技有限公司 | 一种移动终端设备下的应急广播推送方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10348854B2 (en) | Managing contact status updates in a presence management system | |
CN102932352B (zh) | 和客户端进行通信的方法以及服务器 | |
CN110719318B (zh) | 消息处理方法和系统 | |
CN105338078A (zh) | 用于存储系统的数据存储方法和装置 | |
CN109618174B (zh) | 一种直播数据传输方法、装置、系统以及存储介质 | |
US20130139178A1 (en) | Cluster management system and method | |
CN101622587A (zh) | 用于唤醒计算设备的集中式服务 | |
CN114979158B (zh) | 一种资源监控方法、系统、设备及计算机可读存储介质 | |
CN102143150A (zh) | 一种获取媒体内容的方法、设备及系统 | |
CN113923397B (zh) | 会议室设备的状态检测方法、装置、电子设备和存储介质 | |
CN108540367B (zh) | 一种消息处理方法及系统 | |
CN110781149A (zh) | 管理直播间信息的方法、装置、设备及存储介质 | |
CN114374705A (zh) | 服务集群和消息推送方法 | |
CN112838980B (zh) | 一种消息处理方法、系统、装置、电子设备及存储介质 | |
CN113301558B (zh) | 一种消息传输方法、设备、系统及存储介质 | |
US20160110285A1 (en) | Method of controlling data writing to persistent storage device | |
CN104683288A (zh) | 消息续传方法和装置 | |
CN112751907B (zh) | 信息处理方法、装置和存储介质及电子装置 | |
CN114827171B (zh) | 信息同步方法、装置、计算机设备和存储介质 | |
CN105554134A (zh) | 信息同步方法及装置 | |
JP2009206731A (ja) | 監視システム、監視装置、監視方法、およびプラグラム | |
CN113595894B (zh) | 服务节点间、客户端节点间通信方法、装置、设备及介质 | |
CN113162796B (zh) | 一种设备更新方法、装置及设备更新系统 | |
CN114827967A (zh) | 软件更新方法、蓝牙设备及存储介质 | |
CN110913020B (zh) | 工作组的数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |