CN111163159A - 消息订阅方法、装置、服务器及计算机可读存储介质 - Google Patents
消息订阅方法、装置、服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111163159A CN111163159A CN201911375335.0A CN201911375335A CN111163159A CN 111163159 A CN111163159 A CN 111163159A CN 201911375335 A CN201911375335 A CN 201911375335A CN 111163159 A CN111163159 A CN 111163159A
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- target
- cache node
- data cache
- 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.)
- Granted
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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种消息订阅方法、装置、服务器及计算机可读存储介质,该方法应用于数据缓存节点,数据缓存节点为数据缓存节点集群中的任一数据缓存节点,该方法包括:当监听到目标数据时判断目标数据是否为订阅更新消息;目标数据包括数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至数据缓存节点的数据;当确定目标数据为订阅更新消息时对目标数据进行拦截处理;查询订阅了目标数据对应的频道的目标客户端以将目标数据发送至运行了目标客户端的设备。采用本申请,可以使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,可以提高该客户端的数据更新效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种消息订阅方法、装置、服务器及计算机可读存储介质。
背景技术
发布/订阅(pub/sub)是一种消息通信模式。在pub/sub系统中,发布者可以向消息中介发出消息,而订阅者可以向该中介注册订阅。通常来说,订阅者对应的客户端可以按照预设时间间隔轮询该系统对应的数据库,以从该数据库中获取数据。其中,该数据库可以为关系型数据库或非关系型数据库。然而,采用上述方式,将导致客户端获取的数据不够及时,降低了客户端的数据更新效率。
发明内容
本申请实施例提供了一种消息订阅方法、装置、服务器及计算机可读存储介质,可以使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,可以提高该客户端的数据更新效率。
第一方面,本申请实施例提供了一种消息订阅方法,应用于数据缓存节点,所述数据缓存节点为数据缓存节点集群中的任一数据缓存节点,所述方法包括:
当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据;
当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播;
查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
可选地,所述方法还包括:
当接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;
以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;
若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则发送超时提示消息至所述第一客户端对应的设备。
可选地,所述方法还包括:
当接收到第一客户端对应的设备发送的订阅请求,判断所述订阅请求是否属于所述数据缓存节点;
若所述订阅请求不属于所述数据缓存节点,则根据哈希规则确定所述订阅请求在所述数据缓存节点集群中所属的目标数据缓存节点,并将所述目标缓存节点的信息返回至所述外部设备,以便所述外部设备根据所述目标数据缓存节点的信息重新发送订阅请求至所述目标数据缓存节点。
可选地,当所述目标数据不为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备通过哈希槽的方式定位至所述数据缓存节点后发送至所述数据缓存节点的。
可选地,当所述目标数据为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备调用指定接口,并由该指定接口使用键哈希策略订阅所述数据缓存节点后发送的。
可选地,当所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备在启动自刷新模式的情况下,当捕捉到处理目标数据时的异常错误事件时,在内存中保存所述目标数据,并当检测到异常重试指令时,从内存中取出后发送的。
第二方面,本申请实施例提供了一种消息订阅装置,应用于数据缓存节点,所述数据缓存节点为数据缓存节点集群中的任一数据缓存节点,所述装置包括:
判断模块,用于当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据;
处理模块,用于当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播;
通信模块,用于查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
可选地,所述处理模块,还用于当通过所述通信模块接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则通过所述通信模块发送超时提示消息至所述第一客户端对应的设备。
第三方面,本申请实施例提供了一种服务器,包括处理器、存储器和输出设备,所述处理器、所述存储器和所述输出设备之间相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的方法。
综上所述,数据缓存节点可以当监听到目标数据时,判断该目标数据是否为订阅更新消息;当确定该目标数据为订阅更新消息时,数据缓存节点可以对该目标数据进行拦截处理,该拦截处理包括禁止该目标数据在该数据缓存节点集群内广播;数据缓存节点可以查询订阅了该目标数据对应的频道的目标客户端,并将该目标数据发送至运行了该目标客户端的设备,从而使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,提高了数据更新效率,并减小了数据缓存节点的压力,此外由于对为订阅更新消息的数据进行了拦截处理,还可以使得避免客户端多次收到重复的更新数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种消息订阅方法的流程示意图;
图2是本申请实施例提供的一种消息订阅方法的流程示意图;
图3是本申请实施例提供的一种消息订阅系统的网络架构示意图;
图4是本申请实施例提供的一种消息订阅装置的结构示意图;
图5是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,为本申请实施例提供的一种消息订阅方法的流程示意图。该方法可以应用于数据缓存节点,该数据缓存节点可以为数据缓存节点集群中的任一数据缓存节点。该数据缓存节点可以为数据缓存服务器。具体地,该方法可以包括以下步骤:
S101、当监听到目标数据时,判断所述目标数据是否为订阅更新消息。
其中,该目标数据包括该数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至该数据缓存节点的数据。在一个实施例中,该外部该数据缓存节点可以为Redis节点,该数据缓存节点集群可以是Redis集群。外部设备不在该数据缓存节点集群中。该外部设备可以为终端或服务器,该终端包括但不限于智能手机、平板电脑、笔记本电脑、智能可穿戴设备等智能终端。在一个实施例中,该外部设备可以是运行有OpenResty客户端的设备。该订阅更新消息可以是指更新被订阅的频道的消息。在一个实施例中,当目标数据为订阅更新消息时,该目标数据可以包括频道和针对该频道的更新数据。
在一个实施例中,数据缓存节点判断该目标数据是否为订阅更新消息的方式可以为数据缓存节点根据该目标数据的数据类型判断该目标数据是否为订阅更新消息,或数据缓存节点根据该目标数据的数据格式判断该目标数据是否为订阅更新消息。
在一个实施例中,当该目标数据不为订阅更新消息,数据缓存节点可以对该目标数据进行广播处理,如将该目标数据广播至数据缓存节点集群。
在一个实施例中,当该目标数据不为订阅更新消息(如为insert/update/delete/query操作的数据等数据库操作数据),且该目标数据为该外部设备发送至该数据缓存节点的数据时,该目标数据是由该外部设备通过哈希槽hash slot的方式定位至该数据缓存节点后发送至该数据缓存节点的。具体地,外部设备可以向数据缓存节点集群中的任一节点发送查询请求,并可以接收该任一节点返回该目标数据对应的频道的哈希槽的标识与能够处理该查询请求的数据缓存节点的信息,如地址信息。外部应用程序可以根据该哈希槽的标识以及该数据缓存节点的信息,将目标数据发送至该数据缓存节点。
在一个实施例中,当该目标数据为订阅更新消息,且该目标数据为该外部设备发送至该数据缓存节点的数据时,该目标数据是由该外部设备调用指定接口,并由该指定接口使用键哈希策略订阅该数据缓存节点后发送的。例如,该指定接口可以为redis restyapi。在一个实施例中。该键哈希策略可以为根据数据缓存节点集群中数据量最小的数据缓存设置的策略。具体地,外部设备可以从配置文件中查询预设的该数据量最小的节点,并将目标数据发送至该数据量最小的节点。采用该方式,可以均衡数据缓存节点集群中各节点的存储压力。
在一个实施例中,当该目标数据为该外部设备发送至该数据缓存节点的数据时,该目标数据可以是由该外部设备在启动自刷新模式的情况下,当捕捉到处理目标数据时的异常错误事件时,在内存中保存该目标数据,并当检测到异常重试指令时,从内存中取出后发送的。即,该外部设备可以启动自刷新模式,并可以当捕捉到处理目标数据时的异常错误事件时,在内存中保存该目标数据,并当检测到异常重试指令时,从内存中取出该目标数据后将该目标数据发送至数据缓存节点。
S102、当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播。
本申请实施例中,数据缓存节点可以当确定该目标数据为订阅更新消息时,对该目标数据进行拦截处理,从而避免因在数据缓存节点集群广播该目标数据导致消息订阅者重复收到多条目标数据的情况。
在一个实施例中,上述拦截处理还可以包括丢弃该目标数据。
在一个实施例中,数据缓存节点可以设置过滤器,通过该过滤器可以对该目标数据进行拦截处理。
S103、查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
例如,该目标客户端可以为OpenResty客户端。该OpenResty客户端可以是指OpenResty的Nginx应用程序。
下面将以数据缓存节点为Redis节点且目标客户端为Openresty客户端为例,对如何查询订阅了该目标数据的频道的目标客户端的过程进行阐述。
在一个实施例中,Redis节点的订阅SUBSCRIBE命令可以让OpenResty客户端订阅任意数量的频道,每当有新的订阅更新信息发送到Redis节点的指定频道时,该订阅更新消息就会被发送给所有订阅了该指定频道的OpenResty客户端。其中,每个Redis节点的进程都可以维持一个表示节点状态的redis.h/redisServer结构。结构的发布订阅频道pubsub_channels属性是一个字典,这个字典就用于保存正在被订阅的频道的信息。其中,字典的键为正在被订阅的频道,而字典的值则是一个链表,链表中保存了所有订阅这个频道的客户端的信息。OpenResty客户端可以发送SUBSCRIBE命令(包括OpenResty客户端的信息和要订阅的频道的信息)至Redis节点,redis节点可以根据SUBSCRIBE命令将OpenResty客户端和要订阅的频道在pubsub_channels字典中关联起来。因此,Redis节点可以根据pubsub_channels字典查询订阅了该目标数据对应的频道的Openresty客户端。
具体的,Redis节点根据pubsub_channels字典查询订阅了该目标数据对应的频道的OpenResty客户端的方式可以为:Redis节点确认目标数据对应的频道是否为pubsub_channels字典的键;若为,则确定该目标数据对应的频道正在被客户端订阅;Redis节点可以从该pubsub_channels字典中取出该目标数据对应的频道对应的链表,并基于该链表查询出订阅了该目标数据的频道的OpenResty客户端。
在一个实施例中,数据缓存节点可以发送通知消息至运行了该目标客户端的设备。
在一个实施例中,该通知消息可以携带该目标数据。
在一个实施例中,当该通知消息不携带该目标数据时,该通知消息可以用于提示运行了该目标客户端的设备从该数据缓存节点获取该目标数据。
在一个实施例中,该运行了该目标客户端的设备获取该目标数据后,可以利用该目标数据对本地数据进行更新。
在一个实施例中,当该设备包括的目标客户端重启时,可以根据该目标数据对应的频道从该目标客户端的共享内存中读取该目标数据。
可见,图1所示的实施例中,数据缓存节点可以当监听到目标数据时,判断该目标数据是否为订阅更新消息;当确定该目标数据为订阅更新消息时,数据缓存节点可以对该目标数据进行拦截处理,该拦截处理包括禁止该目标数据在该数据缓存节点集群内广播;数据缓存节点可以查询订阅了该目标数据对应的频道的目标客户端,并将该目标数据发送至运行了该目标客户端的设备,从而使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,可以提高该客户端的数据更新效率,并可以减小数据缓存节点的压力,此外由于对为订阅更新消息的数据进行了拦截处理,还可以使得避免客户端多次收到重复的更新数据。
请参阅图2,为本申请实施例提供的一种消息订阅方法的流程示意图。该方法可以应用于数据缓存节点,该数据缓存节点可以为数据缓存节点集群中的任一数据缓存节点。该数据缓存节点可以为数据缓存服务器。具体地,该方法可以包括以下步骤:
S201、当监听到目标数据时,判断所述目标数据是否为订阅更新消息;
S202、当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播。
S203、查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
其中,步骤S201-步骤S203可以参见图1实施例中的步骤S101-步骤S103,本申请实施例在此不做赘述。
S204、当接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间。
本申请实施例中,数据缓存节点可以当接收到第一客户端对应的设备发送的订阅请求时,查询该订阅请求对应的频道是否存在数据更新;若查询到该订阅请求对应的频道不存在数据更新,则获取系统时间,以执行步骤S205。
在一个实施例中,数据缓存节点可以在数据缓存节点集群中查询该订阅请求对应的频道是否存在数据更新。
S205、以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新。
S206、若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则发送超时提示消息至所述第一客户端对应的设备。
在步骤S205-S206中,数据缓存节点可以以该系统时间为起始时间在预设时间范围内监听该订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听该订阅请求对应的频道不存在数据更新,则数据缓存节点发送超时提示消息至该第一客户端对应的设备。相较于现有技术直到监听到该订阅请求对应的频道存在数据更新时返回针对该频道更新的数据,本申请实施例采用上述过程,能够及时给予客户端响应,从而提升消息订阅的效率。
在一个实施例中,在该第一客户端对应的设备接收到超时提示信息后,可以再次发送订阅请求至该数据缓存节点。
在一些可选的实施方式中,数据缓存节点可以当接收到第一客户端对应的设备发送的订阅请求时,判断该订阅请求是否属于该数据缓存节点;若该订阅请求不属于该数据缓存节点,数据缓存节点可以根据哈希规则确定该订阅请求在该数据缓存节点集群中所属的目标数据缓存节点,并将该目标缓存节点的信息返回至该外部设备,以便该外部设备根据该目标数据缓存节点的信息重新发送订阅请求至该目标数据缓存节点。其中,该哈希规则包括但不限于为哈希槽的方式。采用该方法可以正确定位出目标数据缓存节点,减少客户端对应的设备的工作量。
可见,图2所示的实施例中,数据缓存节点当接收到第一客户端对应的设备发送的订阅请求时,若查询到该订阅请求对应的频道不存在数据更新,则获取系统时间;数据缓存节点以该系统时间为起始时间在预设时间范围内监听该订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听该订阅请求对应的频道不存在数据更新,则数据缓存节点发送超时提示消息至该第一客户端对应的设备,能够及时给予客户端响应,从而提升消息订阅的效率。
请参阅图3,为本申请实施例提供的一种消息订阅系统的网络架构示意图。图3所示的消息订阅系统可以包括数据缓存节点集群300。该数据缓存节点集群可以包括多个数据缓存节点301以及运行了目标客户端的设备302。在一个实施例中,图3所示的消息订阅系统还可以包括外部设备303。其中:
数据缓存节点301可以通过执行步骤S101以判断监听到的目标数据是否为订阅更新消息。其中,该目标数据可以为数据缓存节点集群中多个数据缓存节点301之间通信的数据和/或外部设备303发送至所述数据缓存节点的数据。数据缓存节点301还可以通过执行步骤S102以在确定该目标数据为订阅更新消息时,对该目标数据进行拦截处理,并通过执行步骤S103查询出订阅了该目标数据对应的频道的目标客户端,并将该目标数据发送至运行了该目标客户端的设备302,从而使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,可以提高该客户端的数据更新效率,并可以减小数据缓存节点的压力,此外由于对为订阅更新消息的数据进行了拦截处理,还可以使得避免客户端多次收到重复的更新数据。
请参阅图4,为本申请实施例提供的一种消息订阅装置的结构示意图。该消息订阅装置可以应用于数据缓存节点,该数据缓存节点可以为数据缓存节点集群中的任一数据缓存节点。具体地,该装置可以包括:
判断模块401,用于当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据。
处理模块402,用于当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播。
通信模块403,用于查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
在一种可选的实施方式中,处理模块402,还用于当通过通信模块403接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则通过通信模块403发送超时提示消息至所述第一客户端对应的设备。
在一种可选的实施方式中,处理模块402,还用于当通过通信模块403接收到第一客户端对应的设备发送的订阅请求,判断所述订阅请求是否属于所述数据缓存节点;若所述订阅请求不属于所述数据缓存节点,则根据哈希规则确定所述订阅请求在所述数据缓存节点集群中所属的目标数据缓存节点,并通过通信模块403将所述目标缓存节点的信息返回至所述外部设备,以便所述外部设备根据所述目标数据缓存节点的信息重新发送订阅请求至所述目标数据缓存节点。
在一种可选的实施方式中,当所述目标数据不为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备通过哈希槽的方式定位至所述数据缓存节点后发送至所述数据缓存节点的。
在一种可选的实施方式中,当所述目标数据为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备调用指定接口,并由该指定接口使用键哈希策略订阅所述数据缓存节点后发送的。
在一种可选的实施方式中,当所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备在启动自刷新模式的情况下,当捕捉到处理目标数据时的异常错误事件时,在内存中保存所述目标数据,并当检测到异常重试指令时,从内存中取出后发送的。
可见,图4所示的实施例中,消息订阅装置可以当监听到目标数据时,判断该目标数据是否为订阅更新消息;当确定该目标数据为订阅更新消息时,消息订阅装置可以对该目标数据进行拦截处理,该拦截处理包括禁止该目标数据在该数据缓存节点集群内广播;消息订阅装置可以查询订阅了该目标数据对应的频道的目标客户端,并将该目标数据发送至运行了该目标客户端的设备,从而使得在数据缓存节点订阅了相应频道的客户端能够及时获取关于该频道的数据变更,可以提高该客户端的数据更新效率,并可以减小数据缓存节点的压力,此外由于对为订阅更新消息的数据进行了拦截处理,还可以使得避免客户端多次收到重复的更新数据。
请参阅图5,为本申请实施例提供的一种服务器的结构示意图。该服务器可以前述提及的数据缓存节点。该数据缓存节点可以为数据缓存节点集群中的任一数据缓存节点,其中,本实施例中所描述的服务器可以包括:处理器1000、存储器2000、一个或多个输入设备3000、一个或多个输出设备4000。处理器1000、存储器2000、一个或多个输入设备3000、一个或多个输出设备4000之间可以通过总线或其它方式连接。在一个实施例中,该一个或多个输入设备3000为可选的设备。其中,输入设备3000和输出设备4000可以包括标准的有线或无线通信接口。
处理器1000可以是中央处理模块(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器2000可以是高速RAM存储器,也可为非不稳定的存储器(non-volatilememory),例如磁盘存储器。存储器2000用于存储一组程序代码,处理器1000、输入设备3000和输出设备4000可以调用存储器2000中存储的程序代码。具体地:
处理器1000,用于当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据;当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播;查询订阅了所述目标数据对应的频道的目标客户端,并通过输出设备4000将所述目标数据发送至运行了所述目标客户端的设备。
可选地,处理器1000,还用于当通过输入设备3000接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则通过输出设备4000发送超时提示消息至所述第一客户端对应的设备。
可选地,处理器1000,还用于当通过输入设备3000接收到第一客户端对应的设备发送的订阅请求,判断所述订阅请求是否属于所述数据缓存节点;若所述订阅请求不属于所述数据缓存节点,则根据哈希规则确定所述订阅请求在所述数据缓存节点集群中所属的目标数据缓存节点,并通过输出设备4000将所述目标缓存节点的信息返回至所述外部设备,以便所述外部设备根据所述目标数据缓存节点的信息重新发送订阅请求至所述目标数据缓存节点。
可选地,当所述目标数据不为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备通过哈希槽的方式定位至所述数据缓存节点后发送至所述数据缓存节点的。
可选地,当所述目标数据为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备调用指定接口,并由该指定接口使用键哈希策略订阅所述数据缓存节点后发送的。
可选地,当所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备在启动自刷新模式的情况下,当捕捉到处理目标数据时的异常错误事件时,在内存中保存所述目标数据,并当检测到异常重试指令时,从内存中取出后发送的。
具体实现中,本申请实施例中所描述的处理器1000、输入设备3000、输出设备4000可执行图1和图2实施例所描述的实现方式,也可执行本申请实施例所描述的实现方式,在此不再赘述。
在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采样硬件的形式实现,也可以采样软件功能模块的形式实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的介质为计算机可读存储介质,该计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本申请所涵盖的范围。
Claims (10)
1.一种消息订阅方法,其特征在于,应用于数据缓存节点,所述数据缓存节点为数据缓存节点集群中的任一数据缓存节点,所述方法包括:
当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据;
当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播;
查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;
以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;
若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则发送超时提示消息至所述第一客户端对应的设备。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到第一客户端对应的设备发送的订阅请求,判断所述订阅请求是否属于所述数据缓存节点;
若所述订阅请求不属于所述数据缓存节点,则根据哈希规则确定所述订阅请求在所述数据缓存节点集群中所属的目标数据缓存节点,并将所述目标缓存节点的信息返回至所述外部设备,以便所述外部设备根据所述目标数据缓存节点的信息重新发送订阅请求至所述目标数据缓存节点。
4.根据权利要求1所述的方法,其特征在于,当所述目标数据不为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备通过哈希槽的方式定位至所述数据缓存节点后发送至所述数据缓存节点的。
5.根据权利要求1所述的方法,其特征在于,当所述目标数据为订阅更新消息,且所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备调用指定接口,并由该指定接口使用键哈希策略订阅所述数据缓存节点后发送的。
6.根据权利要求1所述的方法,其特征在于,当所述目标数据为所述外部设备发送至所述数据缓存节点的数据时,所述目标数据是由所述外部设备在启动自刷新模式的情况下,当捕捉到处理目标数据时的异常错误事件时,在内存中保存所述目标数据,并当检测到异常重试指令时,从内存中取出后发送的。
7.一种消息订阅装置,其特征在于,应用于数据缓存节点,所述数据缓存节点为数据缓存节点集群中的任一数据缓存节点,所述装置包括:
判断模块,用于当监听到目标数据时,判断所述目标数据是否为订阅更新消息;所述目标数据包括所述数据缓存节点集群中多个数据缓存节点之间通信的数据和/或外部设备发送至所述数据缓存节点的数据;
处理模块,用于当确定所述目标数据为订阅更新消息时,对所述目标数据进行拦截处理,所述拦截处理包括禁止所述目标数据在所述数据缓存节点集群内广播;
通信模块,用于查询订阅了所述目标数据对应的频道的目标客户端,并将所述目标数据发送至运行了所述目标客户端的设备。
8.根据权利要求7所述的装置,其特征在于,所述处理模块,还用于当通过所述通信模块接收到第一客户端对应的设备发送的订阅请求时,若查询到所述订阅请求对应的频道不存在数据更新,则获取系统时间;以所述系统时间为起始时间在预设时间范围内监听所述订阅请求对应的频道是否存在数据更新;若在预设时间范围内监听所述订阅请求对应的频道不存在数据更新,则通过所述通信模块发送超时提示消息至所述第一客户端对应的设备。
9.一种服务器,其特征在于,包括处理器、存储器和输出设备,所述处理器、所述存储器和所述输出设备之间相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911375335.0A CN111163159B (zh) | 2019-12-27 | 2019-12-27 | 消息订阅方法、装置、服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911375335.0A CN111163159B (zh) | 2019-12-27 | 2019-12-27 | 消息订阅方法、装置、服务器及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111163159A true CN111163159A (zh) | 2020-05-15 |
CN111163159B CN111163159B (zh) | 2023-07-14 |
Family
ID=70556659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911375335.0A Active CN111163159B (zh) | 2019-12-27 | 2019-12-27 | 消息订阅方法、装置、服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163159B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654397A (zh) * | 2020-06-03 | 2020-09-11 | 中国科学院自动化研究所 | 数据订阅方法、装置、电子设备及存储介质 |
CN111931721A (zh) * | 2020-09-22 | 2020-11-13 | 苏州科达科技股份有限公司 | 年检标签颜色和个数的检测方法、装置及电子设备 |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
CN112783886A (zh) * | 2021-03-12 | 2021-05-11 | 中国平安财产保险股份有限公司 | 缓存清理方法、装置、计算机设备及存储介质 |
CN113014672A (zh) * | 2021-04-07 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种消息推送方法、装置、电子设备及存储介质 |
CN114741396A (zh) * | 2022-04-28 | 2022-07-12 | 北京远舢智能科技有限公司 | 一种数据服务的处理方法、装置、电子设备及存储介质 |
CN115878666A (zh) * | 2022-10-31 | 2023-03-31 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN116016678A (zh) * | 2022-12-13 | 2023-04-25 | 广域铭岛数字科技有限公司 | 分布式消息事件订阅方法、系统、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004072800A2 (en) * | 2003-02-06 | 2004-08-26 | Progress Software Corporation | Dynamic subscription and message routing on a topic between a publishing node and subscribing nodes |
CN103457841A (zh) * | 2013-09-17 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 一种基于长连接的消息处理方法和消息处理装置 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
CN106612301A (zh) * | 2015-10-22 | 2017-05-03 | 招商局国际信息技术有限公司 | 更新数据的推送方法和装置 |
CN109064345A (zh) * | 2018-08-14 | 2018-12-21 | 中国平安人寿保险股份有限公司 | 消息处理方法、系统以及计算机可读存储介质 |
-
2019
- 2019-12-27 CN CN201911375335.0A patent/CN111163159B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004072800A2 (en) * | 2003-02-06 | 2004-08-26 | Progress Software Corporation | Dynamic subscription and message routing on a topic between a publishing node and subscribing nodes |
CN103457841A (zh) * | 2013-09-17 | 2013-12-18 | 北京京东尚科信息技术有限公司 | 一种基于长连接的消息处理方法和消息处理装置 |
CN104092718A (zh) * | 2013-12-12 | 2014-10-08 | 腾讯数码(天津)有限公司 | 分布式系统及分布式系统中配置信息的更新方法 |
CN106612301A (zh) * | 2015-10-22 | 2017-05-03 | 招商局国际信息技术有限公司 | 更新数据的推送方法和装置 |
CN109064345A (zh) * | 2018-08-14 | 2018-12-21 | 中国平安人寿保险股份有限公司 | 消息处理方法、系统以及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
凌东: "一种采用消息模型的多集群作业管理方案设计", 《计算机技术与发展》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111654397A (zh) * | 2020-06-03 | 2020-09-11 | 中国科学院自动化研究所 | 数据订阅方法、装置、电子设备及存储介质 |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
CN111931721A (zh) * | 2020-09-22 | 2020-11-13 | 苏州科达科技股份有限公司 | 年检标签颜色和个数的检测方法、装置及电子设备 |
CN112783886A (zh) * | 2021-03-12 | 2021-05-11 | 中国平安财产保险股份有限公司 | 缓存清理方法、装置、计算机设备及存储介质 |
CN112783886B (zh) * | 2021-03-12 | 2023-08-29 | 中国平安财产保险股份有限公司 | 缓存清理方法、装置、计算机设备及存储介质 |
CN113014672A (zh) * | 2021-04-07 | 2021-06-22 | 广州趣丸网络科技有限公司 | 一种消息推送方法、装置、电子设备及存储介质 |
CN113014672B (zh) * | 2021-04-07 | 2022-05-17 | 广州趣丸网络科技有限公司 | 一种消息推送方法、装置、电子设备及存储介质 |
CN114741396A (zh) * | 2022-04-28 | 2022-07-12 | 北京远舢智能科技有限公司 | 一种数据服务的处理方法、装置、电子设备及存储介质 |
CN115878666A (zh) * | 2022-10-31 | 2023-03-31 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN115878666B (zh) * | 2022-10-31 | 2023-09-12 | 四川川大智胜系统集成有限公司 | 一种缓存依赖关系的管理方法、系统、电子设备及介质 |
CN116016678A (zh) * | 2022-12-13 | 2023-04-25 | 广域铭岛数字科技有限公司 | 分布式消息事件订阅方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111163159B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111163159B (zh) | 消息订阅方法、装置、服务器及计算机可读存储介质 | |
CN111226497B (zh) | 通信网络中的服务注册 | |
CN108196961B (zh) | 一种异步消息处理方法、终端、系统及存储介质 | |
US20180359140A1 (en) | Method, device, and system for processing a terminal fault | |
US20210297874A1 (en) | Devices and methods for discovering collectable data and analytics data in a network | |
CN112350873B (zh) | 应用服务信息处理方法、应用服务调用方法、装置及系统 | |
CN110753129A (zh) | 消息传输方法、系统、装置、设备及计算机可读存储介质 | |
CN112434039A (zh) | 数据的存储方法、装置、存储介质以及电子装置 | |
CN110830581A (zh) | 提升区块链响应速度的方法、区块链应用系统及相关设备 | |
CN112035531B (zh) | 敏感数据处理方法、装置、设备及介质 | |
CN108228625B (zh) | 一种推送消息处理方法及装置 | |
CN111581502A (zh) | 一种信息通知方法及装置 | |
CN112118352A (zh) | 通知触发消息的处理方法和装置 | |
CN111124717A (zh) | 消息投递方法、系统及计算机存储介质 | |
CN111355765B (zh) | 一种网络请求的处理、发送方法及装置 | |
CN113779452B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN106550021B (zh) | 推送消息的推送方法及装置 | |
CN109005465B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN114328156B (zh) | 协议端口的健康检测方法、装置、设备及可读存储介质 | |
CN116155539A (zh) | 一种基于信息流异步处理算法的自动化渗透测试方法、系统、设备以及存储介质 | |
CN115062035A (zh) | 数据处理方法、电子设备及计算机可读存储介质 | |
CN113032492B (zh) | 一种边缘端数据传输与存储的方法以及装置 | |
EP4092961A1 (en) | Group updating method, message sending method, and apparatuses | |
CN112131263B (zh) | 软件包获取方法、系统、装置、电子设备和存储介质 | |
CN114221925A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |