CN113542314A - 一种基于关键字过滤的订阅模式实现方法及*** - Google Patents
一种基于关键字过滤的订阅模式实现方法及*** Download PDFInfo
- Publication number
- CN113542314A CN113542314A CN202010285711.3A CN202010285711A CN113542314A CN 113542314 A CN113542314 A CN 113542314A CN 202010285711 A CN202010285711 A CN 202010285711A CN 113542314 A CN113542314 A CN 113542314A
- Authority
- CN
- China
- Prior art keywords
- message
- subscriber
- keyword
- filtering
- queue
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于关键字过滤的订阅模式实现方法及***,涉及网络通信技术领域。该方法包括:消息代理接收发布者发布的指定消息主题的消息后,将接收到的消息存入该消息主题对应的一个或多个队列的尾部,并依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤;当消息代理收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。本发明能对重复无效的消息进行过滤,使订阅者只接受到有效的消息,并保证消息的接受的可靠性。
Description
技术领域
本发明涉及网络通信技术领域,具体来讲是一种基于关键字过滤的订阅模式实现方法及***。
背景技术
在电信网络的管理过程中,***有海量的消息以消息订阅的模式进行网络间传输,这就涉及到消息有效性的问题。因为大量的消息传输给网络,给网络的处理能力以及存储能力都带来了非常大的压力,无效的消息无疑是浪费了网络带宽,挤占了有效消息的处理资源,消耗了存储空间。尤其是订阅者在无法判断接受消息基线的情况下,需要将对应消息主题的所有历史消息都接受一遍,才能获得最终的有效消息。
因此,如何对重复无效的消息进行过滤,使订阅者只接收到有效的消息,并保证消息的接收可靠性,是本领域技术人员亟待解决的技术问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种基于关键字过滤的订阅模式实现方法及***,能对重复无效的消息进行过滤,使订阅者只接受到有效的消息,并保证消息的接受的可靠性。
为达到以上目的,本发明提供一种基于关键字过滤的订阅模式实现方法,包括以下步骤:
A、消息代理接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
B、消息代理将接收到的消息存入该消息主题对应的一个或多个队列的尾部;依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤;
C、当消息代理收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
在上述技术方案的基础上,所述步骤B中,依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤,具体包括以下操作:
依据消息主题的标识前缀判断是否进行关键字过滤,若是,继续判断可持久化容器中是否已存储有此关键字对应的消息的信息,若是,将其删除后再将该消息的信息***至可持久化容器中,否则,直接将该消息的信息***至可持久化容器中;所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳。
在上述技术方案的基础上,所述步骤C中,根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤后的消息返回给订阅者,具体步骤包括:
1)先根据该订阅者的接受消息基线,确定要拉取的消息的位置:
若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;
若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;
若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
2)再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围:
若订阅者未给出关键字,则拉取所有在上述拉取位置及之后的消息;
若订阅者给出了指定关键字,则拉取包含指定关键字的、在上述拉取位置及之后的消息。
在上述技术方案的基础上,该方法还包括以下操作:订阅者接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
在上述技术方案的基础上,当消息代理设置为一个以上,且其中一个消息代理作为主节点,其余消息代理作为从节点时,该方法还包括以下操作:
当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点按照步骤B的操作进行处理;当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点按照步骤A、B的操作进行消息的接收与处理,订阅者则会将拉取消息的请求发送给从节点,从节点按照步骤C的操作进行消息的拉取。
本发明还提供一种基于关键字过滤的订阅模式实现***,包括发布者、消息代理、订阅者;所述消息代理包括消息接收模块、消息主题识别模块、消息处理模块以及消息拉取模块;
所述消息接收模块,用于:接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
所述消息主题识别模块,用于:依据消息主题的标识前缀判断是否进行关键字过滤;
所述消息处理模块,用于:将接收到的消息存入消息主题对应的一个或多个队列的尾部;当判定需要进行关键字过滤时,将消息转存至可持久化容器中进行过滤;
所述消息拉取模块,用于:当收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
在上述技术方案的基础上,所述消息处理模块将消息转存至可持久化容器中进行过滤,具体包括以下操作:当判定需要进行关键字过滤时,将该消息的信息转存至可持久化容器中,所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳;在存储之前先检查是否已有此关键字对应的消息的信息,若有则将原有消息以新消息覆盖。
在上述技术方案的基础上,所述消息拉取模块根据订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者,具体操作包括:
先根据该订阅者的接受消息基线,确定要拉取的消息的位置:若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围:若订阅者未给出关键字,则拉取所有在上述拉取位置及之后的消息;若订阅者给出了指定关键字,则拉取包含指定关键字的、在上述拉取位置及之后的消息。
在上述技术方案的基础上,所述订阅者设置有消息过滤模块,用于:接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
在上述技术方案的基础上,该***包括一个以上消息代理,且其中一个消息代理作为主节点,其余消息代理作为从节点;
当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点利用其消息主题识别模块、消息处理模块进行消息的处理;
当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点利用其消息接收模块、消息主题识别模块、消息处理模块进行消息的接收与处理,订阅者会将拉取消息的请求发送给从节点,从节点则利用其消息拉取模块进行消息的拉取。
本发明的有益效果在于:
(1)本发明中,消息代理在处理发布者发送的消息时,对于消息主题是关键字过滤的主题,会直接在可持久化容器中进行过滤持久化——对于关键字相同的消息,将新消息覆盖旧消息,使得可持久化容器中始终存储最新的消息,从而达到过滤出最新消息的效果;同时,对于所有消息主题的消息,也会按照队尾***的方式进行存储,使得关键字在各队列内的最后一条消息为最新消息,从而达到历史消息的压缩过滤的效果。
与此同时,消息代理在处理订阅者拉取消息的请求时,会根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取消息返回给订阅者。该消息拉取过程是依据订阅者的接受消息基线以及订阅者给出的消息关键字,所进行的有针对性的过滤消息的拉取,可达到避免订阅者被动接受大量无用消息的目的,确保了消息接受的有效性及可靠性。
(2)本发明中,在订阅者端增加过滤机制,使得订阅者端能合并来自多个队列的消息,并对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用,从而实现订阅者端的再次过滤,进一步确保了消息接受的有效性。
(3)本发明针对消息代理可能因故障而无法正常工作的情况,设计有消息代理的主、从工作模式,有效避免了因消息代理的故障而影响了订阅者端的正常使用,进一步确保了该订阅模式的可靠性。
(4)本发明提供一种简洁高效且功能强大的关键字过滤方案,使用者无需关注其实现原理,发布者和订阅者之间只需要简单的约定消息主题名称即可应用该功能。
附图说明
图1为本发明实施例一中基于关键字过滤的订阅模式实现方法的原理图;
图2为本发明实施例一中基于关键字过滤的订阅模式实现方法的流程图;
图3为本发明实施例中步骤B的具体流程图;
图4为本发明实施例二中基于关键字过滤的订阅模式实现方法的原理图;
图5为本发明实施例三中基于关键字过滤的订阅模式实现***的结构框图。
具体实施方式
首先,对本发明的设计原理作进一步说明:传统的消息代理提供的消息订阅模式,订阅者在订阅消息时,无法避免会接收到关键字重复的消息。而这类消息在很多场景中是具有时效性的,订阅者只需要接受最后一条消息即可。例如,网管***中的告警灯,用户界面只需要获取各个网元的最后告警灯状态即可,在这种场景下,就没有必要接受所有的消息。
因此,为了避免订阅者接受重复无效的消息,确保消息接受的有效性及可靠性,参加图1所示,本发明提出的主要解决方案是:(1)消息代理收到消息发布者发送的消息后,先追加到相应队列的尾部,然后再判断是否是该队列对应消息主题是否需要进行关键字过滤处理,若是,则将此消息转存到可持久化容器中,在可持久化容器中即可进行过滤持久化;具体来说,就是对于关键字相同的消息,将新消息覆盖旧消息,使得可持久化容器中始终存储最新的消息,从而达到过滤出最新消息的效果。(2)消息代理收到订阅者拉取消息的请求后,会根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者;该消息拉取过程是依据订阅者的接受消息基线以及订阅者给出的消息关键字,所进行的有针对性的过滤消息的拉取,可达到避免订阅者被动接受大量无用消息的目的,确保了消息接受的有效性及可靠性。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
但需说明的是:接下来要介绍的示例仅是一些具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
实施例一
参见图2所示,本实施例提供了一种基于关键字过滤的订阅模式实现方法,该方法包括以下步骤:
A、消息代理接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
B、消息代理将接收到的消息存入该消息主题对应的一个或多个队列的尾部;依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤;可以理解的是,一个消息主题可以有一个或多个队列,可在配置文件或者构建消息主题时指定队列的数量,通常情况下一个消息主题可默认有一个队列。
C、当消息代理收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
可以理解的是,发布者在将消息发往指定的消息主题时,会对需要支持关键字过滤的消息主题,在其主题名称上增加标识前缀,例如:“map_”前缀,具体采用的标识前缀可由发布者、消息代理、订阅者之间进行协定,本实施例不做具体限定;另外,发布者还会在发送的消息的消息体中携带当前消息的关键字,具体操作时,可在消息体中的公共可识别部分携带当前消息的关键字
进一步地,在实际操作中,由于一个消息主题下可以支持存在多个队列,因此,作为一种优选的实施方式,发布者向消息代理中指定的消息主题的队列发送消息时,可将关键字相同的消息尽量发送到同一个队列上。因为消息代理的过滤都是针对队列内消息的过滤(即,拉取关键字在相应队列上的最后一条消息),所以只有关键字相同的消息尽量在同一个队列里才能更好的实现该过滤效果。
进一步地,参见图3所示,在实际操作时,该方法的步骤B具体包括以下操作:
B1、消息代理将接收到的消息存入相应队列的尾部;
B2、依据消息主题的标识前缀判断是否进行关键字过滤,若是,转入步骤B3;否则,给发布者返回结果后结束步骤B;
B3、判断可持久化容器中是否已存储有此关键字对应的消息的信息,若是,将其删除后转入步骤B4;否则,直接转入步骤B4;
B4、将该消息的信息转存至可持久化容器中,所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳等;并且,给发布者返回结果后结束步骤B。
可以理解的是,从上述步骤B的具体操作中可以看出,本实施例中,消息代理在处理发布者发送的消息时,对于消息主题是关键字过滤的主题,会直接在可持久化容器中进行过滤持久化——对于关键字相同的消息,将新消息覆盖旧消息,使得可持久化容器中始终存储最新的消息,从而达到过滤出最新消息的效果;同时,对于所有消息主题的消息,也会按照队尾***的方式进行存储,使得关键字在各队列内的最后一条消息为最新消息,从而达到历史消息的压缩过滤的效果。
进一步地,在实际操作时,该方法的步骤C中,根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤后的消息返回给订阅者,具体包括以下步骤:
先根据该订阅者的接受消息基线,确定要拉取的消息的位置(即确定从什么地方开始拉取消息):(1)若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;(2)若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;(3)若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围(即确定所要拉取的消息的数量):(1)若订阅者未给出关键字(即订阅者给出的关键字数量为0,表示可以接受关键字为任何值的消息),则拉取所有在上述拉取位置及之后的消息;(2)若订阅者给出了指定关键字(即订阅者给出的关键字数量不为0,表示只接受指定关键字的消息),则拉取包含指定关键字的、在上述拉取位置及之后的消息。
为了便于理解上述操作,下面以具体例子来进行详细说明:
例1、假设某订阅者的接受消息基线为从当前时间开始收取,且该订阅者未给出要拉取的消息的关键字;则消息代理将拉取所有关键字在各队列内的最后一条消息。
例2、假设某订阅者的接受消息基线为从当前时间开始收取,且该订阅者给出要拉取的消息的关键字为A;则消息代理将拉取关键字A在各队列内的最后一条消息。
例3、假设某订阅者的接受消息基线为不确定,且该订阅者未给出要拉取的消息的关键字;则消息代理将先从可持久化容器中拉取所有关键字的最新的一条消息,然后再从所有关键字在各队列内的最后一条消息开始拉取。
例4、假设某订阅者的接受消息基线为不确定,且该订阅者给出要拉取的消息的关键字为B;则消息代理将先从可持久化容器中拉取关键字B的最新的一条消息,然后再从关键字B在各队列内的最后一条消息开始拉取。
例5、假设某订阅者的接受消息基线为指定基线,且该订阅者未给出要拉取的消息的关键字;则消息代理将拉取所有关键字在各队列内指定位置及之后的消息。
例6、假设某订阅者的接受消息基线为指定基线,且该订阅者给出要拉取的消息的关键字为C;则消息代理将拉取关键字C在各队列内指定位置及之后的消息。
可以理解的是,从上述步骤C的具体操作中可以看出,本实施例中,消息代理在处理订阅者拉取消息的请求时,会根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取消息返回给订阅者。该消息拉取过程是有针对性的拉取,并且尽量保证拉取的是最新的消息,即使是要拉取历史消息,也是从队列内的最后一条消息进行拉取,从而对历史消息进行了压缩过滤,最终达到避免订阅者被动接受大量无用消息的目的,确保了消息接受的有效性及可靠性。
进一步地,作为本实施例中一种优选的实施方式,在步骤C之后还包括以下操作:订阅者接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
可以理解的是,由于一个消息主题下可以支持存在多个队列,而过滤是单个队列内部的功能,因此若存在多个队列时,针对同一关键字,订阅者可能会从多个队列中获取到消息,可能存在队列间消息重复或无效的情况。为了解决此问题,本优选的实施方式选择在订阅者端增加过滤机制,使得订阅者端能合并来自多个队列的消息,并对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用,从而实现再次过滤。更具体地来说,在实际应用中,订阅者端可以在开始拉取消息时维护着已接收消息的关键字和该消息时间戳的MAP,再令订阅者端按照消息时间戳的先后顺序接收消息。如M1,M2为两条关键字相同但来自不同队列的消息,产生时间分别为T1、T2(T1<T2),那么若订阅者先收到M1,后面还会收取M2,并会将M2作为最终的消息传递给上层应用;若订阅者先收到M2,则可以拒收M1,并会将M2作为最终的消息传递给上层应用。
实施例二
参见图4所示,本实施例提供的一种基于关键字过滤的订阅模式实现方法,其基本步骤与实施例一相同,不同之处在于,作为另一种实施方式,当消息代理设置为一个以上,且其中一个消息代理作为主节点,其余消息代理作为从节点时,该方法还包括以下操作:
当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点按照步骤B的操作进行处理;
当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点按照步骤A、B的操作进行消息的接收与处理,订阅者会将拉取消息的请求发送给从节点,从节点按照步骤C的操作进行消息的拉取。可以理解的是,代替主节点处理基于关键字过滤的从节点,可以从多个从节点中选取一个作为代替主节点,也可由多个从节点来代替主节点,具体应用可根据实际需求进行设置,本实施例不做具体限定。
更具体地,在实际应用中,上述操作的具体步骤可如下:
S1、当从节点正常启动时,以自身记录的各队列最后一条消息的偏移量,向主节点查询后续的消息增量;并根据主节点返回的结果,同步更新各队列及可持久化容器内的数据;
S2、后续主节点接收到发布者发来的消息后,按照步骤B的操作进行消息的处理;并将该消息转发给从节点,从节点同样按照步骤B的操作进行消息的处理;
S3、当主节点发生故障停止工作(宕机)且用于代替主节点的从节点生效后,发布者会将消息发往该从节点,该从节点按照步骤A、B的操作进行消息的接收与处理;订阅者会将拉取消息的请求发送给该从节点进行处理,该从节点按照步骤C的操作进行消息的拉取。
可以理解的是,待主节点恢复正常工作后,会与用于代替主节点的从节点进行数据同步,使得主、从节点数据能保证最终一致性,不影响订阅者处理。
实施例三
基于同一发明构思,参见图5所示,本发明实施例还提供了一种基于关键字过滤的订阅模式实现***,包括发布者、消息代理、订阅者。其中,消息代理包括:消息接收模块、消息主题识别模块、消息处理模块以及消息拉取模块。
消息接收模块,用于:接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
消息主题识别模块,用于:依据消息主题的标识前缀判断是否进行关键字过滤;
消息处理模块,用于:将接收到的消息存入消息主题对应的一个或多个队列的尾部;当判定需要进行关键字过滤时,将消息转存至可持久化容器中进行过滤;
消息拉取模块,用于:当收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
进一步地,在实际应用中,所述消息处理模块将消息转存至可持久化容器中进行过滤,具体包括以下操作:当判定需要进行关键字过滤时,将该消息的信息转存至可持久化容器中,所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳;在存储之前先检查是否已有此关键字对应的消息的信息,若有则将原有消息以新消息覆盖。
进一步地,在实际应用中,所述消息拉取模块根据订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者,具体包括以下操作:
先根据该订阅者的接受消息基线,确定要拉取的消息的位置:(1)若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;(2)若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;(3)若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围:(1)若订阅者未给出关键字,则拉取所有在上述拉取位置及之后的消息;(2)若订阅者给出了指定关键字,则拉取包含指定关键字的、在上述拉取位置及之后的消息。
再进一步地,在一种可选的实施方式中,所述订阅者设置有消息过滤模块,用于:接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
实施例四
本实施例提供的一种基于关键字过滤的订阅模式实现***,其基本结构与实施例三相同,不同之处在于:该***包括一个以上消息代理,且其中一个消息代理作为主节点,其余消息代理作为从节点;当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点利用其消息主题识别模块、消息处理模块进行消息的处理;当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点利用其消息接收模块、消息主题识别模块、消息处理模块进行消息的接收与处理,订阅者会将拉取消息的请求发送给从节点,从节点则利用其消息拉取模块进行消息的拉取。
注意:上述的具体实施例仅是例子而非限制,且本领域技术人员可以根据本发明的构思从上述分开描述的各个实施例中合并和组合一些步骤和装置来实现本发明的效果,这种合并和组合而成的实施例也被包括在本发明中,在此不一一描述这种合并和组合。
本发明实施例中提及的优点、优势、效果等仅是示例,而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,本发明实施例公开的上述具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明实施例必须采用上述具体的细节来实现。
本发明实施例中涉及的器件、装置、设备、***的方框图仅作为例示性的例子,并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。本发明实施例所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。本发明实施例所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
本发明实施例中的步骤流程图以及以上方法描述仅作为例示性的例子,并且不意图要求或暗示必须按照给出的顺序进行各个实施例的步骤。如本领域技术人员将认识到的,可以按任意顺序进行以上实施例中的步骤的顺序。诸如“其后”、“然后”、“接下来”等等的词语不意图限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。此外,例如使用冠词“一个”、“一”或者“该”对于单数的要素的任何引用不被解释为将该要素限制为单数。
另外,本发明各个实施例中的步骤和装置并非仅限定于某个实施例中实行,事实上,可以根据本发明的概念来结合本文中的各个实施例中相关的部分步骤和部分装置,以构思新的实施例,而这些新的实施例也包括在本发明的范围内。
本发明实施例中的各个操作可以通过能够进行相应的功能的任何适当的手段而进行。该手段可以包括各种硬件和/或软件组件和/或模块,包括但不限于硬件的电路或处理器。
本发明实施例的方法包括用于实现上述的方法的一个或多个动作。方法和/或动作可以彼此互换而不脱离权利要求的范围。换句话说,除非指定了动作的具体顺序,否则可以修改具体动作的顺序和/或使用而不脱离权利要求的范围。
本发明实施例中的功能可以按硬件、软件、固件或其任意组合而实现。如果以软件实现,功能可以作为一个或多个指令存储在切实的计算机可读介质上。存储介质可以是可以由计算机访问的任何可用的切实介质。通过例子而不是限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光碟存储、磁碟存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他切实介质。如在此使用的,碟(disk)和盘(disc)包括紧凑盘(CD)、激光盘、光盘、DVD(Digital Versatile Disc,数字多功能光盘)、软碟和蓝光盘,其中碟通过磁再现数据,而盘利用激光光学地再现数据。
因此,计算机程序产品可以进行在此给出的操作。例如,这样的计算机程序产品可以是具有有形存储(和/或编码)在其上的指令的计算机可读的有形介质,该指令可由一个或多个处理器执行以进行在此所述的操作。计算机程序产品可以包括包装的材料。
其他例子和实现方式在本发明实施例和所附权利要求的范围和精神内。例如,由于软件的本质,以上所述的功能可以使用由处理器、硬件、固件、硬连线或这些的任意的组合执行的软件实现。实现功能的特征也可以物理地位于各个位置,包括被分发以便功能的部分在不同的物理位置处实现。
本领域技术人员可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。且本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种基于关键字过滤的订阅模式实现方法,其特征在于,该方法包括以下步骤:
A、消息代理接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
B、消息代理将接收到的消息存入该消息主题对应的一个或多个队列的尾部;依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤;
C、当消息代理收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
2.如权利要求1所述的基于关键字过滤的订阅模式实现方法,其特征在于,所述步骤B中,依据消息主题的标识前缀判断是否进行关键字过滤,若是,则将该消息转存至可持久化容器中进行过滤,具体包括以下操作:
依据消息主题的标识前缀判断是否进行关键字过滤,若是,继续判断可持久化容器中是否已存储有此关键字对应的消息的信息,若是,将其删除后再将该消息的信息***至可持久化容器中,否则,直接将该消息的信息***至可持久化容器中;
所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳。
3.如权利要求1所述的基于关键字过滤的订阅模式实现方法,其特征在于,所述步骤C中,根据该订阅者的接受消息基线情况及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤后的消息返回给订阅者,具体包括以下步骤:
1)先根据该订阅者的接受消息基线,确定要拉取的消息的位置:
若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;
若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;
若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
2)再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围:
若订阅者未给出关键字,则拉取所有在上述拉取位置及之后的消息;
若订阅者给出了指定关键字,则拉取包含指定关键字的、在上述拉取位置及之后的消息。
4.如权利要求1所述的基于关键字过滤的订阅模式实现方法,其特征在于,该方法还包括以下操作:订阅者接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
5.如权利要求1所述的基于关键字过滤的订阅模式实现方法,其特征在于,当消息代理设置为一个以上,且其中一个消息代理作为主节点,其余消息代理作为从节点时,该方法还包括以下操作:
当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点按照步骤B的操作进行处理;
当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点按照步骤A、B的操作进行消息的接收与处理,订阅者则会将拉取消息的请求发送给从节点,从节点按照步骤C的操作进行消息的拉取。
6.一种基于关键字过滤的订阅模式实现***,包括发布者、消息代理、订阅者,其特征在于:所述消息代理包括消息接收模块、消息主题识别模块、消息处理模块以及消息拉取模块;
所述消息接收模块,用于:接收发布者发布的指定消息主题的消息;所述消息的消息体中携带有消息的关键字,且支持关键字过滤的消息主题具有标识前缀;
所述消息主题识别模块,用于:依据消息主题的标识前缀判断是否进行关键字过滤;
所述消息处理模块,用于:将接收到的消息存入消息主题对应的一个或多个队列的尾部;当判定需要进行关键字过滤时,将消息转存至可持久化容器中进行过滤;
所述消息拉取模块,用于:当收到订阅者拉取消息的请求,且该消息的消息主题支持关键字过滤时,根据该订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者。
7.如权利要求6所述的基于关键字过滤的订阅模式实现***,其特征在于,所述消息处理模块将消息转存至可持久化容器中进行过滤,具体包括以下操作:当判定需要进行关键字过滤时,将该消息的信息转存至可持久化容器中,所述消息的信息包括:消息的关键字、消息的完整内容、消息所在队列的标识号、消息再队列中的偏移量以及消息的时间戳;在存储之前先检查是否已有此关键字对应的消息的信息,若有则将原有消息以新消息覆盖。
8.如权利要求6所述的基于关键字过滤的订阅模式实现***,其特征在于,所述消息拉取模块根据订阅者的接受消息基线情况以及订阅者给出的消息的关键字情况,在可持久化容器和/或相应队列中,拉取过滤的消息返回给订阅者,具体包括以下操作:
先根据该订阅者的接受消息基线,确定要拉取的消息的位置:若该订阅者的接受消息基线为从当前时间开始收取,则将拉取消息的位置确定为直接从相应队列中最后一条消息开始拉取;若该订阅者的接受消息基线为不确定,则将拉取消息的位置确定为先从可持久化容器中对应主题下拉取消息,并依据订阅者的请求条件,判定从可持久化容器中已取完数据后,向订阅者返回从队列拉取的标志;然后再从相应队列中最后一条消息开始拉取;若该订阅者的接受消息基线为订阅者指定基线,则将拉取消息的位置确定为从相应队列中的指定基线开始拉取消息;
再根据该订阅者给出的要拉取的消息的关键字,确定要拉取的消息的范围:若订阅者未给出关键字,则拉取所有在上述拉取位置及之后的消息;若订阅者给出了指定关键字,则拉取包含指定关键字的、在上述拉取位置及之后的消息。
9.如权利要求6所述的基于关键字过滤的订阅模式实现***,其特征在于,所述订阅者设置有消息过滤模块,用于:接收到消息代理返回的消息后,对于关键字相同而队列不同的消息,取时间戳最新的消息作为最终的消息,传递给上层应用。
10.如权利要求6所述的基于关键字过滤的订阅模式实现***,其特征在于:该***包括一个以上消息代理,且其中一个消息代理作为主节点,其余消息代理作为从节点;
当从节点启动时先从主节点上同步队列内以及可持久化容器内的数据;后续主节点收到发布者发来的新消息后,转发给从节点,从节点利用其消息主题识别模块、消息处理模块进行消息的处理;
当主节点发生故障停止工作后,发布者会将消息发往从节点,从节点利用其消息接收模块、消息主题识别模块、消息处理模块进行消息的接收与处理,订阅者会将拉取消息的请求发送给从节点,从节点则利用其消息拉取模块进行消息的拉取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010285711.3A CN113542314B (zh) | 2020-04-13 | 2020-04-13 | 一种基于关键字过滤的订阅模式实现方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010285711.3A CN113542314B (zh) | 2020-04-13 | 2020-04-13 | 一种基于关键字过滤的订阅模式实现方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113542314A true CN113542314A (zh) | 2021-10-22 |
CN113542314B CN113542314B (zh) | 2022-07-08 |
Family
ID=78119861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010285711.3A Active CN113542314B (zh) | 2020-04-13 | 2020-04-13 | 一种基于关键字过滤的订阅模式实现方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113542314B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125057A (zh) * | 2022-01-26 | 2022-03-01 | 中科边缘智慧信息科技(苏州)有限公司 | 一种面向多业务中心的分布式数据交互方法及装置 |
CN114666292A (zh) * | 2022-04-01 | 2022-06-24 | 广州大学 | 一种即时通信技术方法、***及介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236780A1 (en) * | 2003-02-25 | 2004-11-25 | Michael Blevins | Systems and methods for client-side filtering of subscribed messages |
US20060047634A1 (en) * | 2004-08-26 | 2006-03-02 | Aaron Jeffrey A | Filtering information at a data network based on filter rules associated with consumer processing devices |
CN104092717A (zh) * | 2013-12-13 | 2014-10-08 | 深圳市腾讯计算机***有限公司 | 消息处理方法及***、消息目的端设备与分布式消息*** |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理***及处理方法 |
CN107656825A (zh) * | 2017-09-01 | 2018-02-02 | 上海艾融软件股份有限公司 | 消息处理方法、装置及*** |
CN108076103A (zh) * | 2016-11-18 | 2018-05-25 | 北京优朋普乐科技有限公司 | 一种消息处理方法、***及消息生产者集群 |
CN108183967A (zh) * | 2018-01-16 | 2018-06-19 | 重庆邮电大学 | 适用于IPv6无线传感器网络的OPC UA发布/订阅方法 |
CN108769099A (zh) * | 2018-04-02 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种消息中间件的消息去重的实现方法 |
CN109428922A (zh) * | 2017-08-29 | 2019-03-05 | 华为技术有限公司 | 一种订阅发布方法及服务器 |
US20190207887A1 (en) * | 2017-12-28 | 2019-07-04 | Facebook, Inc. | Techniques for message deduplication |
US20190318036A1 (en) * | 2018-04-11 | 2019-10-17 | Wind River Systems, Inc. | Topic Based Publish and Parametric Subscribe Pattern |
US20200076881A1 (en) * | 2018-08-30 | 2020-03-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method, device and vehicle for message deduplication |
-
2020
- 2020-04-13 CN CN202010285711.3A patent/CN113542314B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236780A1 (en) * | 2003-02-25 | 2004-11-25 | Michael Blevins | Systems and methods for client-side filtering of subscribed messages |
US20060047634A1 (en) * | 2004-08-26 | 2006-03-02 | Aaron Jeffrey A | Filtering information at a data network based on filter rules associated with consumer processing devices |
CN104092717A (zh) * | 2013-12-13 | 2014-10-08 | 深圳市腾讯计算机***有限公司 | 消息处理方法及***、消息目的端设备与分布式消息*** |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理***及处理方法 |
CN108076103A (zh) * | 2016-11-18 | 2018-05-25 | 北京优朋普乐科技有限公司 | 一种消息处理方法、***及消息生产者集群 |
CN109428922A (zh) * | 2017-08-29 | 2019-03-05 | 华为技术有限公司 | 一种订阅发布方法及服务器 |
CN107656825A (zh) * | 2017-09-01 | 2018-02-02 | 上海艾融软件股份有限公司 | 消息处理方法、装置及*** |
US20190207887A1 (en) * | 2017-12-28 | 2019-07-04 | Facebook, Inc. | Techniques for message deduplication |
CN108183967A (zh) * | 2018-01-16 | 2018-06-19 | 重庆邮电大学 | 适用于IPv6无线传感器网络的OPC UA发布/订阅方法 |
CN108769099A (zh) * | 2018-04-02 | 2018-11-06 | 武汉斗鱼网络科技有限公司 | 一种消息中间件的消息去重的实现方法 |
US20190318036A1 (en) * | 2018-04-11 | 2019-10-17 | Wind River Systems, Inc. | Topic Based Publish and Parametric Subscribe Pattern |
US20200076881A1 (en) * | 2018-08-30 | 2020-03-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method, device and vehicle for message deduplication |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114125057A (zh) * | 2022-01-26 | 2022-03-01 | 中科边缘智慧信息科技(苏州)有限公司 | 一种面向多业务中心的分布式数据交互方法及装置 |
CN114125057B (zh) * | 2022-01-26 | 2022-04-26 | 中科边缘智慧信息科技(苏州)有限公司 | 一种面向多业务中心的分布式数据交互方法及装置 |
CN114666292A (zh) * | 2022-04-01 | 2022-06-24 | 广州大学 | 一种即时通信技术方法、***及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113542314B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6745884B2 (ja) | データ同期方法、装置及びシステム | |
CN113542314B (zh) | 一种基于关键字过滤的订阅模式实现方法及*** | |
CN113641511B (zh) | 一种消息通信方法和装置 | |
CN110045912A (zh) | 数据处理方法和装置 | |
WO2013078689A1 (zh) | 一种云消息服务中实现消息传递的方法和装置 | |
CN112597249B (zh) | 一种业务数据的同步分发存储方法及*** | |
CN110601903A (zh) | 一种基于消息队列中间件的数据处理方法及装置 | |
KR101545626B1 (ko) | Dds-db 연동 시스템 | |
CN110457141B (zh) | 一种业务消息的处理方法、***、装置及设备 | |
CN102609479A (zh) | 一种内存数据库节点复制方法 | |
US20060112083A1 (en) | Object relation information management program, method, and apparatus | |
US20140108484A1 (en) | Method and system for optimizing distributed transactions | |
CN108566291A (zh) | 一种事件处理的方法、服务器及*** | |
CN115146002A (zh) | 跨数据中心的数据同步方法及装置 | |
CN103503388B (zh) | 一种分布式队列消息读取方法及设备、*** | |
CN110417892A (zh) | 基于报文解析的数据复制链路优化方法及装置 | |
CN111143126A (zh) | 一种分布式文件***的数据拷贝方法、***及相关组件 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库*** | |
CN104123296A (zh) | 一种生成消息索引以便向接收者呈现消息的方法及装置 | |
CN110825758B (zh) | 一种交易处理的方法及装置 | |
CN114564458B (zh) | 集群间数据同步的方法、装置、设备和存储介质 | |
CN113448755B (zh) | 用于新旧***切换的交易路由方法及装置 | |
CN111796768B (zh) | 分布式服务协调方法、装置及*** | |
CN104394195B (zh) | 数据更新方法及装置 | |
CN104869056A (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 |