CN109783573B - 多路推送的数据同步方法及终端 - Google Patents
多路推送的数据同步方法及终端 Download PDFInfo
- Publication number
- CN109783573B CN109783573B CN201811548908.0A CN201811548908A CN109783573B CN 109783573 B CN109783573 B CN 109783573B CN 201811548908 A CN201811548908 A CN 201811548908A CN 109783573 B CN109783573 B CN 109783573B
- Authority
- CN
- China
- Prior art keywords
- data
- real
- timing
- time
- push
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种多路推送的数据同步方法及终端,所述方法包括:获取数据库日志数据;解析所述数据库日志数据得到定时推送数据和实时推送数据;将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,本发明还公开了一种下级终端、上级终端和中级终端,本发明可实现数据的多路推送,提高多个终端间的数据推送速度。
Description
技术领域
本发明涉及计算机数据处理技术领域,尤其涉及一种多路推送的数据同步方法及终端。
背景技术
目前各级法院的庭审数据均需推送至上级法院,即基层法院定向推送到市级中级人民法院,中院业务***推送到高院。各级法院间的数据传输采用一对一推送的方式。一般采用webservice作为数据交换协议,当本地法院在业务***中调用数据修改代码模块时,***进行数据拦截,在完成数据库操作后,对数据进行协议封装,然后推送到上级法院的业务***中进行数据同步。但是,这种数据推送方法存在以下问题:1、采用***或者硬编码的方式进行数据推送,与业务***代码高度耦合;2、受网络因素影响,无法保证协议的准确到达;3、上级法院业务***既要承载正常的业务操作,又要同时处理多个下级法院推送来的数据,导致业务***压力过大,可能会出现服务程序响应缓慢的情况,影响用户体验;4、上级法院庭审***一旦宕机,会导致下级所有法院的庭审数据推送无法到达;5、上级庭审***在处理推送数据的时候,一旦出现断电或程序崩溃,正在处理的数据会丢失;6、一个法院的庭审数据无法同时推送给多个上级法院,即无法满足1对N的数据推送。
发明内容
本发明的一个目的在于提供一种多路推送的数据同步方法,实现数据的多路推送,提高多个终端间的数据推送速度。本发明的另一个目的在于提供一种下级终端,本发明的再一个目的在于提供一种上级终端,本发明的还一个目的在于提供一种中级终端。
为了达到以上目的,本发明一方面公开了一种多路推送的数据同步方法,包括:
获取数据库日志数据;
解析所述数据库日志数据得到定时推送数据和实时推送数据;
将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。
优选地,所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。
优选地,所述实时推送数据包括封装的多个实时数据包,所述实时推送信息包括与每个实时数据包对应的实时事件序号,所述定时推送数据包括封装的多个定时数据包,所述定时推送信息包括与每个定时数据包对应的定时事件序号;
所述将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列具体包括:
根据所述实时事件序号获取至少一个实时数据包,根据所述定时事件序号获取至少一个定时数据包;
将所述至少一个实时数据包和所述至少一个定时数据包传输至每个终端对应的消息队列中,重复获取至少一个实时数据包和至少一个定时数据包直至所有实时数据包和所有定时数据包传输至对应的消息队列。
优选地,所述将所述至少一个实时数据包和所述至少一个定时数据包传输至每个终端对应的消息队列中,重复获取至少一个实时数据包和至少一个定时数据包直至所有实时数据包和所有定时数据包传输至对应的消息队列具体包括:
将所述实时数据包或所述定时数据包传输至每个上级终端的对应的消息队列;
若接收到消息队列返回的接收成功信息,得到推送信息中当前事件序号后的一个或多个事件序号,将所述一个或多个事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列中;
若没有接收到消息队列返回的接收成功信息,根据当前事件序号重新传输实时推送数据或定时推送数据至对应的消息队列直至接收到所述消息队列返回的接收成功信息。
优选地,根据当前事件序号重新传输实时推送数据或定时推送数据至对应的消息队列直至接收到所述消息队列返回的接收成功信息具体包括:
当重新将当前事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列超过第一预设次数时,设置相邻两次传输推送数据的时间间隔为第一时间间隔;
当重新将当前事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列超过第二预设次数时,设置相邻两次重新传输的时间间隔为第二时间间隔直至接收到消息队列返回的接收成功信息,消除相邻两次传输推送数据的时间间隔,其中所述第二时间间隔大于所述第一时间间隔。
优选地于,所述方法进一步包括在所述终端从所述消息队列中获取所述定时推送数据或所述实时推送数据之后删除所述消息队列中的实时推送数据或所述实时推送数据的步骤。
本发明还公开了一种多路推送的数据同步方法,包括:
从定时消息队列或实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。
本发明还公开了一种下级终端,包括:
数据获取单元,用于获取数据库日志数据;
数据解析单元,用于解析所述数据库日志数据得到定时推送数据和实时推送数据;
数据传输单元,用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。
本发明还公开了一种上级终端,包括:
实时消息队列,用于存储实时推送数据;
定时消息队列,用于存储定时推送数据;
处理单元,用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。
本发明还公开了一种中级终端,包括:
数据获取单元,用于获取数据库日志数据;
数据解析单元,用于解析所述数据库日志数据得到定时推送数据和实时推送数据;
数据传输单元,用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据;
实时消息队列,用于存储实时推送数据;
定时消息队列,用于存储定时推送数据;
处理单元,用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。
本发明将推送的数据分为定时推送数据和实时推送数据,分别传输至定时消息队列和实时消息队列,上级法院终端的业务***可分别从定时消息队列和实时消息队列中分别获取定时推送数据和实时推送数据,业务***可根据本地业务的处理情况获取消息列队的数据,从而可提高业务***的运行速度,提高用户体验。待推送数据存储在消息队列中,网络较差或上级法院终端宕机也不会导致消息队列中的推送数据丢失,且针对每个终端均设置两个用于存储推送数据的消息队列,可以同时向多个终端业务***推送数据,实现一对多的数据同步。同时,对于每个待推送数据的终端均形成定时消息队列和实时消息队列,实现多个终端同时推送数据时各个终端间的数据推送过程互不干扰,防止一个终端宕机导致其他终端也无法接收到推送数据的情况发生。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出基院业务***与中院/高院业务***的架构图;
图2示出本发明一种多路推送的数据同步方法一个具体实施例的流程图之一;
图3示出本发明一种多路推送的数据同步方法一个具体实施例的流程图之二;
图4示出本发明一种多路推送的数据同步方法一个具体实施例的流程图之三;
图5示出本发明一种多路推送的数据同步方法一个具体实施例的流程图之四;
图6示出本发明一种下级终端一个具体实施例的结构图;
图7示出本发明一种上级终端一个具体实施例的结构图;
图8示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,目前各级法庭都设有业务***,基院在审理案件时,需要记录庭审数据并将庭审数据上报至上级的一个或多个法院,例如中院或高院。在庭审时,可通过调用业务***的中的数据修改代码模块,录入庭审数据。基院业务***的***可对输入的庭审数据进行拦截,在完成庭审数据的数据库操作后,对拦截的庭审数据按照传输协议进行封装,并通过网络推送至一个或多个上级法院。目前的法院业务***,通常通过***或硬编码的方式进行业务数据的处理和推送,从而数据推送依靠业务***,数据推送与业务***代码高度耦合,极大地依赖于业务***。业务***通过网络传输庭审数据,在传输过程中,受网络状况影响较大,网络条件差或上级法院庭审业务***宕机可能会导致庭审数据无法准确到达,或者上级法院业务***断电或程序崩溃时,会导致接收数据时数据丢失,且业务***数据推送时通常仅能够一对一推送,而无法实现一对多同时推送,数据推送速度慢,当上级业务***在承载本地正常的业务操作时,还需对接收到的数据进行处理,业务***业务处理量过大,会导致业务***运行速度慢,服务程序响应缓慢等情况,影响用户体验。
基于以上问题,根据本发明的一个方面,本实施例公开了一种多路推送的数据同步方法。如图2所示,本实施例中,该方法包括:
S100:获取数据库日志数据。
S200:解析所述数据库日志数据得到定时推送数据和实时推送数据。其中,实时推送数据可为录入的庭审数据,定时推送数据可为***的操作数据。
S300:将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。
本实施例的数据同步方法从数据库中获取数据库的日志数据,通过解析日志数据可得到变化的日志数据,分析新增的日志数据可区分庭审数据作为实时推送数据和***的操作数据作为定时推送数据,根据数据的重要性将需要推送的数据分为定时推送数据和实时推送数据分别推送。上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据时,可优先获取实时推送数据,而对于定时推送数据,上级终端可在空闲的时间段(例如晚间)获取定时推送数据,从而减轻上级终端业务***的处理压力。
在优选的实施方式中,每个终端设有对应的定时消息队列和实时消息队列,其中定时消息队列可存储定时推送数据,实时消息队列可存储实时推送数据,上级法院终端的业务***可分别从定时消息队列和实时消息队列中获取定时推送数据和实时推送数据,业务***可根据本地业务的处理情况获取消息列队的数据,从而上级业务***可在***处理压力较大时,暂停数据获取,提高业务***的运行速度,提高用户体验。待推送数据存储在消息队列中,网络较差或上级法院终端宕机也不会导致消息队列中的推送数据丢失,且针对每个终端均设置两个用于存储推送数据的消息队列,可以同时向多个终端业务***推送数据,实现一对多的数据同步。同时,对于每个待推送数据的终端均设置定时消息队列和实时消息队列,实现多个终端同时推送数据时各个终端间的数据推送过程互不干扰,防止一个终端宕机导致其他终端也无法接收到推送数据的情况发生。
在优选的实施方式中,如图3所示,所述S100具体可包括:
S110:解析所述日志数据得到增量日志数据。优选的,业务***的数据库可采用mysql数据库。当对mysql数据库进行操作时,可采用mysql主备复制进行数据监控,主数据库(mysql master)中的数据发生变化,即发生录入庭审数据的操作时,mysql master形成二进制日志,通过从mysql中获取到二进制日志的日志数据(binary log),对获得的二进制日志数据进行数据处理可得到增量日志数据,该增量日志数据可包括表示数据库变化的操作数据和表示庭审过程的庭审数据。
在一个具体例子中,可采用mysql数据库二进制日志的增量订阅和消费组件canal,在其他实施方式中,也可采用其他成熟的数据库数据获取工具获取数据库日志,本发明并不作限定。在获取数据库日志数据时,canal可起到从数据库(mysql slave)的作用,根据mysql slave和mysql master的交互协议形成日志请求的dump协议请求并发送至mysql数据库,mysql master接收到dump协议请求后,将数据库中的binary log发送给canal,canal会定期复制主数据库中的日志数据,因此canal中已存有与主数据库未发生数据变化前相同的日志数据。canal可解析binary log,首先通过对比canal上已有的日志数据与接收到的日志数据,得到数据库中新增的增量日志数据。
S120:从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息。数据库日志中记录了所有数据库的操作,包括了常规操作和录入的数据,因而,可预设不同的日志数据变化表示庭审数据或操作数据,对于获取的数据库日志进行数据变化的识别可区分录入的庭审数据和其他的操作数据,对于重要性比较高的庭审数据可进行实时数据推送,而对于重要性比较低的操作数据可进行定时推送,将两种数据分别传送从而提高庭审数据的推送速度,降低上级终端的业务处理压力。
在一个具体例子中,采用canal从数据库中获取binary log并解析得到增量日志数据后,可进一步对获取的增量日志数据进行识别并封装得到庭审数据包和操作数据包。
S130:将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。具体的,在得到庭审数据和操作数据后,根据庭审数据可形成对应的实时推送信息,并存入数据库,根据操作数据可形成对应的定时推送信息,并存入数据库,可根据实时推送信息获取庭审数据进行推送,根据定时推送信息获取操作数据进行推送。
在优选的实施方式中,所述实时推送数据包括封装的多个实时数据包,所述实时推送信息包括与每个实时数据包对应的实时事件序号,所述定时推送数据包括封装的多个定时数据包,所述定时推送信息包括与每个定时数据包对应的定时事件序号,如图4所示,所述S300具体可包括:
S310:根据所述实时事件序号获取至少一个实时数据包,根据所述定时事件序号获取至少一个定时数据包。
S320:将所述至少一个实时数据包和所述至少一个定时数据包传输至每个终端对应的消息队列中,重复获取至少一个实时数据包和至少一个定时数据包直至所有实时数据包和所有定时数据包传输至对应的消息队列。
在优选的实施方式中,如图5所示,所述S320具体可包括:
S321:将所述实时数据包或所述定时数据包传输至每个上级终端的对应的消息队列。
S322:若接收到消息队列返回的接收成功信息,得到推送信息中当前事件序号后的一个或多个事件序号,将所述一个或多个事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列中;
若没有接收到消息队列返回的接收成功信息,根据当前事件序号重新传输实时推送数据或定时推送数据至对应的消息队列直至接收到所述消息队列返回的接收成功信息。
其中,实时事件序号和定时事件序号的顺序可以是依次加1的顺序,则每次接收到接收成功信息后,将实时事件序号或定时事件序号加1即为下一个事件序号,根据下一个或多个事件序号可获取下一个或多个需要推送的数据并发送至对应的消息队列。在业务***初始化时,当没有查找到存储的上一次推送数据的事件序号时,可将事件序号设置为0。
本实施例中,每次将庭审数据或操作数据传输至对应的消息队列后,当传输庭审数据时,可存储此次发送的庭审数据的实时事件序号,当传输操作数据时,可存储此次发送的操作数据的定时事件序号,接收到接收成功信息表示数据成功传输至消息队列中,再将事件序号更新为事件列表中的下一个事件序号。则当遇到网络问题导致推送数据无法传输到消息队列中时,消息列队没有发回接收成功信息,则当前事件序号不发生变化,不会继续发送下一个庭审数据或操作数据,而是重新发送上一次发送的推送数据,直到网络恢复后推送的数据成功传输至消息队列,接收到消息队列返回的接收成功信息再发送下一个待推送的数据,从而保证当发生网络故障时不会导致推送数据丢失的情况发生。
在优选的实施方式中,若没有接收到消息队列返回的接收成功信息,根据当前事件序号重新传输所述一个庭审数据或所述一个操作数据直至接收到消息队列返回的接收成功信息具体可包括:
当重新根据当前事件序号将庭审数据或操作数据传输至对应的消息队列超过第一预设次数时,设置相邻两次重新传输的时间间隔为第一时间间隔。
当重新根据当前事件序号将庭审数据或操作数据传输至对应的消息队列超过第二预设次数时,设置相邻两次重新传输的时间间隔为第二时间间隔直至接收到接收成功信息,消除相邻两次重新传输的时间间隔,其中所述第二时间间隔大于所述第一时间间隔。本实施例采用增加时间间隔的休眠策略,以此来减少对计算机资源的消耗和占用。
在一个具体例子中,可通过业务的发送组件reporter在启动时根据配置的推送信息确定待数据同步的一个或多个终端,针对每个终端创建一个任务组。每个任务组初始化各自的定时推送任务与实时推送任务。实时/定时推送任务从数据库查询对应任务组的实时/定时任务最后一次推送的事件序号,如果记录不存在则默认返回事件序号为0。根据返回记录中的事件序号,实时/定时推送任务可批量查询各自事件序号表中大于此事件序号的事件序号。实时/定时推送任务可批量封装推送的庭审数据或操作数据,并推送到对应的消息队列,推送成功则将最后一个数据的事件序号更新到记录中,如失败则不更新,如果遇到网络问题导致多次失败则推送任务采用休眠策略,可设置第一预设次数为三次,第一时间间隔为30秒,第二预设次数为60次,第二时间间隔为五分钟。则当失败超过三次后每次推送将休眠30秒,当失败次数超过60次后则每次推送休眠五分钟;直到成功推送一次后,消除时间间隔,取消休眠策略。
在优选的实施方式中,所述以使所述终端从所述消息队列中获取所述定时推送数据和所述实时推送数据具体可包括:
终端从所述消息队列中获取所述定时推送数据和所述实时推送数据后删除所述消息队列中的实时推送数据和所述实时推送数据。在一个具体例子中,可采用ActiveMQ来提供消息队列的功能,作为下级法院业务***数据推送的接收端。ActiveMQ是由Apache出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。它的设计目标是提供标准的、面向消息的、多语言的应用集成消息通信中间件。这里采用点对点消息传送模型,使用队列(Queue)作为消息通信载体,满足生产者与消费者模式,一条消息只能被一个消费者使用,未被消费的消息在队列中保留直到被消费。下级法院的reporter服务负责将数据推送到事件/定时消息队列中,充当生产者,上级法院平台负责消费队列中的协议,充当消费者;当一条推送数据被消费后,终端将给ActiveMQ发送确认请求,此时这条数据才会被移出队列。通过设置消息队列可将上级法院业务***的接收压力交给了ActiveMQ来承担,没有了要同时处理大量推送数据的压力,业务平台可以更快的响应用户请求,提升用户体验。
基于相同原理,本实施例还公开了一种多路推送的数据同步方法。本实施例中,所述方法包括从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。由于该方法解决问题的原理与以上方法类似,因此本方法的实施可以参见上述方法的实施,在此不再赘述。
基于相同原理,本实施例还公开了一种下级终端,该终端可作为于基层法院的业务***终端。如图6所示,所述终端包括数据获取单元11、数据解析单元12和数据传输单元13。
其中,数据获取单元11用于获取数据库日志数据。
数据解析单元12用于解析所述数据库日志数据得到定时推送数据和实时推送数据。
数据传输单元13用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。由于该终端解决问题的原理与以上方法类似,因此本终端的实施可以参见方法的实施,在此不再赘述。
基于相同原理,本实施例还公开了一种上级终端,该终端可作为于中级或高级法院的业务***终端。如图7所示,所述终端包括实时消息队列21、定时消息队列22和处理单元23。
其中,实时消息队列21用于存储实时推送数据。
定时消息队列22用于存储定时推送数据。
处理单元23用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。由于该终端解决问题的原理与以上方法类似,因此本终端的实施可以参见方法的实施,在此不再赘述。
基于相同原理,本实施例还公开了一种中级终端,该终端可作为于基层、中级或高级法院的业务***终端。参见图6和图7,所述终端可包括数据获取单元11、数据解析单元12、数据传输单元13、实时消息队列21、定时消息队列22和处理单元23。
其中,数据获取单元11用于获取数据库日志数据。
数据解析单元12用于解析所述数据库日志数据得到定时推送数据和实时推送数据。
数据传输单元13用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。
实时消息队列21用于存储实时推送数据。
定时消息队列22用于存储定时推送数据。
处理单元23用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的。由于该终端解决问题的原理与以上方法类似,因此本终端的实施可以参见方法的实施,在此不再赘述。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图8,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图8所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有***600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种多路推送的数据同步方法,其特征在于,包括:
获取数据库日志数据;
解析所述数据库日志数据得到定时推送数据和实时推送数据;
将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据;
所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息,所述实时推送数据和所述定时推送数据根据数据的重要性确定;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。
2.根据权利要求1所述的数据同步方法,其特征在于,所述实时推送数据包括封装的多个实时数据包,所述实时推送信息包括与每个实时数据包对应的实时事件序号,所述定时推送数据包括封装的多个定时数据包,所述定时推送信息包括与每个定时数据包对应的定时事件序号;
所述将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列具体包括:
根据所述实时事件序号获取至少一个实时数据包,根据所述定时事件序号获取至少一个定时数据包;
将所述至少一个实时数据包和所述至少一个定时数据包传输至每个终端对应的消息队列中,重复获取至少一个实时数据包和至少一个定时数据包直至所有实时数据包和所有定时数据包传输至对应的消息队列。
3.根据权利要求2所述的数据同步方法,其特征在于,所述将所述至少一个实时数据包和所述至少一个定时数据包传输至每个终端对应的消息队列中,重复获取至少一个实时数据包和至少一个定时数据包直至所有实时数据包和所有定时数据包传输至对应的消息队列具体包括:
将所述实时数据包或所述定时数据包传输至每个上级终端的对应的消息队列;
若接收到消息队列返回的接收成功信息,得到推送信息中当前事件序号后的一个或多个事件序号,将所述一个或多个事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列中;
若没有接收到消息队列返回的接收成功信息,根据当前事件序号重新传输实时推送数据或定时推送数据至对应的消息队列直至接收到所述消息队列返回的接收成功信息。
4.根据权利要求3所述的数据同步方法,其特征在于,根据当前事件序号重新传输实时推送数据或定时推送数据至对应的消息队列直至接收到所述消息队列返回的接收成功信息具体包括:
当重新将当前事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列超过第一预设次数时,设置相邻两次传输推送数据的时间间隔为第一时间间隔;
当重新将当前事件序号对应的实时推送数据或定时推送数据传输至对应的消息队列超过第二预设次数时,设置相邻两次重新传输的时间间隔为第二时间间隔直至接收到消息队列返回的接收成功信息,消除相邻两次传输推送数据的时间间隔,其中所述第二时间间隔大于所述第一时间间隔。
5.根据权利要求1所述的数据同步方法,其特征在于,所述方法进一步包括在所述终端从所述消息队列中获取所述定时推送数据或所述实时推送数据之后删除所述消息队列中的实时推送数据或所述实时推送数据的步骤。
6.一种多路推送的数据同步方法,其特征在于,包括:
从定时消息队列或实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的,所述实时推送数据和所述定时推送数据根据数据的重要性确定;
所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。
7.一种下级终端,其特征在于,包括:
数据获取单元,用于获取数据库日志数据;
数据解析单元,用于解析所述数据库日志数据得到定时推送数据和实时推送数据,所述实时推送数据和所述定时推送数据根据数据的重要性确定,所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库;
数据传输单元,用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据。
8.一种上级终端,其特征在于,包括:
实时消息队列,用于存储实时推送数据;
定时消息队列,用于存储定时推送数据;
处理单元,用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的,所述实时推送数据和所述定时推送数据根据数据的重要性确定;
所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。
9.一种中级终端,其特征在于,包括:
数据获取单元,用于获取数据库日志数据;
数据解析单元,用于解析所述数据库日志数据得到定时推送数据和实时推送数据;
数据传输单元,用于将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列,以使所述上级终端从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,所述实时推送数据和所述定时推送数据根据数据的重要性确定;
实时消息队列,用于存储实时推送数据;
定时消息队列,用于存储定时推送数据;
处理单元,用于从所述定时消息队列或所述实时消息队列中获取所述定时推送数据或所述实时推送数据,其中,所述定时推送数据和所述实时推送数据为下级终端获取数据库日志数据,解析所述数据库日志数据得到定时推送数据和实时推送数据,将所述定时推送数据和所述实时推送数据分别传输至与每个上级终端对应的定时消息队列和实时消息队列得到的;
所述解析所述数据库日志数据得到定时推送数据和实时推送数据具体包括:
解析所述日志数据得到增量日志数据;
从所述增量日志数据中识别实时推送数据和定时推送数据,并形成对应的实时推送信息和定时推送信息;
将所述实时推送数据、所述实时推送信息、所述定时推送数据和所述定时推送信息返回所述数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811548908.0A CN109783573B (zh) | 2018-12-18 | 2018-12-18 | 多路推送的数据同步方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811548908.0A CN109783573B (zh) | 2018-12-18 | 2018-12-18 | 多路推送的数据同步方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783573A CN109783573A (zh) | 2019-05-21 |
CN109783573B true CN109783573B (zh) | 2021-10-15 |
Family
ID=66497258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811548908.0A Active CN109783573B (zh) | 2018-12-18 | 2018-12-18 | 多路推送的数据同步方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783573B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347342A (zh) * | 2019-07-12 | 2019-10-18 | 上海英方软件股份有限公司 | 一种基于磁盘队列实现Kafka集群同步的方法及*** |
CN111611308A (zh) * | 2020-06-11 | 2020-09-01 | 上海乾臻信息科技有限公司 | 信息处理方法、装置及*** |
CN112559473B (zh) * | 2020-12-11 | 2022-06-21 | 武汉达梦数据库股份有限公司 | 一种基于优先级的双路同步方法和同步*** |
CN113609199B (zh) * | 2021-07-27 | 2023-09-12 | 远景智能国际私人投资有限公司 | 数据库***、服务器及存储介质 |
CN113946628A (zh) * | 2021-10-27 | 2022-01-18 | 中国建设银行股份有限公司 | 一种基于***的数据同步方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490611B1 (en) * | 1999-01-28 | 2002-12-03 | Mitsubishi Electric Research Laboratories, Inc. | User level scheduling of inter-communicating real-time tasks |
CN103870977A (zh) * | 2012-12-18 | 2014-06-18 | 风网科技(北京)有限公司 | 移动广告平台数据同步方法及其*** |
CN104408132B (zh) * | 2014-11-28 | 2018-03-02 | 北京京东尚科信息技术有限公司 | 数据推送方法和*** |
CN105262831B (zh) * | 2015-10-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种存储***间同步数据的方法、装置及同步*** |
CN107135168A (zh) * | 2016-02-29 | 2017-09-05 | 上海普兰金融服务有限公司 | 一种网络数据处理方法及装置 |
CN106294713A (zh) * | 2016-08-09 | 2017-01-04 | 深圳中兴网信科技有限公司 | 基于增量日志解析的数据同步方法和数据同步装置 |
CN106776072A (zh) * | 2016-12-16 | 2017-05-31 | 携程旅游信息技术(上海)有限公司 | 消息推送方法及*** |
CN106850402B (zh) * | 2017-01-16 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 消息的传输方法和装置 |
CN107123045A (zh) * | 2017-04-14 | 2017-09-01 | 北京金融资产交易所有限公司 | 基于债券交易的数据同步***及其数据同步方法 |
CN108804237A (zh) * | 2017-05-05 | 2018-11-13 | 北京京东尚科信息技术有限公司 | 数据实时统计方法、装置、存储介质和电子设备 |
CN107180116A (zh) * | 2017-06-28 | 2017-09-19 | 努比亚技术有限公司 | 一种数据同步处理方法、移动终端以及计算机可读存储介质 |
CN107844524A (zh) * | 2017-10-12 | 2018-03-27 | 金蝶软件(中国)有限公司 | 数据处理方法、数据处理装置、计算机设备和存储介质 |
-
2018
- 2018-12-18 CN CN201811548908.0A patent/CN109783573B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109783573A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783573B (zh) | 多路推送的数据同步方法及终端 | |
CN111818136B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN104243610A (zh) | 一种分布式文件传输服务方法 | |
CN111541555A (zh) | 群聊优化方法及相关产品 | |
CN104734983A (zh) | 业务数据请求的调度***、方法及装置 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及*** | |
CN111464352A (zh) | 调用链路数据处理方法及装置 | |
CN110912805B (zh) | 消息读取状态的同步方法、终端、服务端及*** | |
CN112069195A (zh) | 基于数据库的消息传输方法、装置、电子设备及存储介质 | |
CN110971533B (zh) | 用于数据通信的方法、服务器装置、客户端装置和介质 | |
CN102256211A (zh) | M2m终端基于群组实现应用的方法和*** | |
CN112148506A (zh) | 消息处理方法、装置、平台和存储介质 | |
CN115348333B (zh) | 基于udp双端通信交互的数据传输方法、***及设备 | |
CN110719233A (zh) | 用于发送信息的方法及装置 | |
CN115866035A (zh) | 多线程数据高速推送方法、***、控制器及存储介质 | |
CN107580033B (zh) | 负载信息处理方法和装置、消息处理方法和装置、服务器 | |
CN107872479B (zh) | 云管理平台与控制器集成方法和***以及相关模块 | |
US10250515B2 (en) | Method and device for forwarding data messages | |
CN110247808B (zh) | 信息发送方法、装置、设备及可读存储介质 | |
CN112686599A (zh) | 请求响应方法、装置、***、电子设备和计算机可读介质 | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN111240867A (zh) | 一种信息通讯***及方法 | |
CN112188562A (zh) | 中继基站的多播调度方法和装置、存储介质及电子装置 | |
CN114503467A (zh) | 一种数据传输方法以及装置 | |
CN115580667B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100094 5 floor 101, 6 building, No. 3, Fung Xiu Road, Haidian District, Beijing. Applicant after: BEIJING HUAXIA DENTSU TECHNOLOGY Co.,Ltd. Address before: 100094 5 floor 101, 6 building, No. 3, Fung Xiu Road, Haidian District, Beijing. Applicant before: BEIJING CHINASYS TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |