CN106682119B - 基于http服务切面与日志系统的异步数据同步方法和系统 - Google Patents

基于http服务切面与日志系统的异步数据同步方法和系统 Download PDF

Info

Publication number
CN106682119B
CN106682119B CN201611124276.6A CN201611124276A CN106682119B CN 106682119 B CN106682119 B CN 106682119B CN 201611124276 A CN201611124276 A CN 201611124276A CN 106682119 B CN106682119 B CN 106682119B
Authority
CN
China
Prior art keywords
data
log
request
queue
data synchronization
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
Application number
CN201611124276.6A
Other languages
English (en)
Other versions
CN106682119A (zh
Inventor
胡杨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Rubik's cube Internet Software Co.,Ltd.
Original Assignee
Nanjing Kakao Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Kakao Network Technology Co Ltd filed Critical Nanjing Kakao Network Technology Co Ltd
Priority to CN201611124276.6A priority Critical patent/CN106682119B/zh
Publication of CN106682119A publication Critical patent/CN106682119A/zh
Application granted granted Critical
Publication of CN106682119B publication Critical patent/CN106682119B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了基于http服务切面与日志系统的异步数据同步方法和系统,方法包括:拦截客户端的接口请求,并记录接口访问日志,将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。本发明通过对接口记录日志,将日志提交到任意一种数据源,由处理程序处理数据源的日志、做数据转换、同步到新的库中,从而可让异步数据同步的延迟降低、复杂度可控。

Description

基于http服务切面与日志系统的异步数据同步方法和系统
技术领域
本发明涉及异步数据同步领域,特别涉及基于http服务切面与日志系统的异步数据同步方法和系统。
背景技术
Bloor研究所2010的一项调查显示,估计数据迁移市场将超过50亿美元并且还正在日益增长。现在许多公司有不同的方法进行数据库迁移,如抽取/转换/装载(简称ETL),复制和手动脚本。然而这些方法面临着一些问题,当一方面数据量在增长,而另一方面允许的停机时间在减少时,这项工作将变得更复杂。数据迁移下统计数据大致如下:
·16%的数据迁移部分项目取得了成功
·37%的预算超支
·64%没有按时完成
所以,迁移要经过精心策划和执行,以尽量减少停机时间并保持数据的完整性和数据库的性能,因为许多公司已经遍布全球,并且每天24小时都要操作数据库。
有些情况下公司会做异构数据库的迁移与切换:例如为了减少费用与技术灵活度,很多公司会选择从商用数据库迁移到开源数据库。迁移是件很麻烦的事情,因为迁移不可能一蹴而就而是一个慢慢变迁的过程,所以就需要同时运营新老两套系统。同时,迁移还需要考虑老的应用、其他服务的兼容。而兼容即包括:老系统接口的兼容、数据服务的兼容等。一般而言,接口的兼容容易实现,只需要对开发人员进行统一的约束、定期安排代码审查即可。麻烦的是数据的协调、确保其他使用老系统数据的系统可以正常提供优质服务。因此,就需要打通数据环节。如何采用正确的方式来打通这个环节是现有技术中的难点。另外,由于新系统替换老系统需要时间去过度,所以数据同步就需要考虑是双向同步、还是单向同步。一般而言,双向同要比单向同步复杂很多。而数据同步需要考虑的问题有很多,比如:同步的延迟不能太大、同步的数据要完备、数据不可丢失、对原有系统要有较低的侵入、数据库无关性等等。
异构数据库迁移的方法包括:1)利用Power Builder的数据管道技术;2)利用ODBC技术和SQL语句;3)利用系统工具实现数据迁移。然而,这些方法大多操作较为复杂、灵活性差,不能够实现对数据的良好组织管理;不能自动完成数据的迁移,用户需要清楚地了解数据库的储存结构,且需要花费大量时间进行调试;并且一旦数据库结构发生变化,代码需要作大量改动,后期维护很困难。另外,系统工具又有一定的局限性,比较依赖具体的数据库产品,通用性欠缺,需要利用这些工具编写适当的迁移程序。
发明内容
本发明要解决的技术问题是,如何采用应用日志的方式来实现数据同步。
解决上述技术问题,本发明提供了基于http服务切面与日志系统的异步数据同步方法,包括如下步骤:
拦截客户端的接口请求,并记录接口访问日志,
将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,
解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。
更进一步,拦截客户端的接口具体包括:采用切面技术来拦截接口请求。
更进一步,所述切面技术采用:jaxrs的请求过滤器、servlet的过滤器、springmvc的拦截器中的一种或者多种,用以提取所述接口请求中的入参、出参、url以及method的数据。
更进一步,将所述访问日志作为请求事件源传递至消息队列的方法具体为:采用log4j2的kafka组件直接将日志写入到kafka队列。
更进一步,将所述访问日志作为请求事件源传递至消息队列的方法具体为:通过flume或者fluent的采集工具将数据提交到kafka队列。
更进一步,解析所述消息队列中的访问日志的方法至少包括:一处理程序,用以将正确的消息保存到本地库中,再去做同步,如果处理失败则自动重试,所述自动重试的次数不大于3次,若大于3次则进行人工处理。
更进一步,方法还包括:在写方法上加注释,再编写处理程序。
更进一步,将日志写入老系统的数据库,然后配置flume或者fluent来sink日志到kafka队列。
更进一步,方法还包括:采用hibernate、mybatis或者任一db框架来进行新老数据库中数据的提取和写入。
基于上述,本申请还提供了基于http服务切面与日志系统的异步数据同步系统,包括:
一拦截单元,用以拦截客户端的接口请求,并记录接口访问日志,
一队列单元,用以将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,
一处理程序,用以解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。
本发明的有益效果:
由于本发明的方法包括拦截客户端的接口请求,并记录接口访问日志,将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。通过对接口记录日志,将日志提交到任意一种数据源,由处理程序处理数据源的日志、做数据转换、同步到新的库中。从而可让异步数据同步的延迟降低、复杂度可控。
此外,本发明提供的系统,并不针对特定的数据库,同时可扩展能力较高。
附图说明
图1是本发明中的方法流程示意图;
图2是本发明中的系统的结构示意图;
图3图1中的进一步处理步骤示意图;
图4是图1中的请求接口数据的类型示意图;
图5是图1中的方法具体实施方式示意图;
图6是图1中的方法另一具体实施方式示意图。
具体实施方式
现在将参考一些示例实施例描述本公开的原理。可以理解,这些实施例仅出于说明并且帮助本领域的技术人员理解和实施例本公开的目的而描述,而非建议对本公开的范围的任何限制。在此描述的本公开的内容可以以下文描述的方式之外的各种方式实施。
如本文中所述,术语“包括”及其各种变体可以被理解为开放式术语,其意味着“包括但不限于”。术语“基于”可以被理解为“至少部分地基于”。术语“一个实施例”可以被理解为“至少一个实施例”。术语“另一实施例”可以被理解为“至少一个其它实施例”。
可以理解,本申请中的客户端是指基于http协议的客户端,如:浏览器、编程语言使用的http client等。HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从www服务器传输超文本到本地浏览器的传输协议。可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。需要说明的是,本申请的基于的HTTP协议是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。
HTTP协议能够支持客户/服务器模式,客户向服务器请求服务时,只需传送请求方法和路径。请求方法包括但不限于:GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。另外,HTTP协议允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记。
在本申请中的Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume最早是Cloudera提供的日志收集系统,目前是Apache下的一个孵化项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据。数据处理方面:Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力。
图1是本发明中的方法流程示意图;步骤S100拦截客户端的接口请求,并记录接口访问日志,所述拦截客户端的接口具体包括:采用切面技术来拦截接口请求,所述切面技术采用:jaxrs的请求过滤器、servlet的过滤器、spring mvc的拦截器中的一种或者多种,用以提取所述接口请求中的入参、出参、url以及method的数据。如图4是图1中的请求接口数据的类型示意图;请求接口数据包括但不限于:请求ID、时间ID、请求URL、请求数据类型、返回数据类型等。
步骤S101将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,在所述步骤S101中将所述访问日志作为请求事件源传递至消息队列的方法具体为:采用log4j2的Kafka组件直接将日志写入到Kafka队列。在一些实施例中,将所述访问日志作为请求事件源传递至消息队列的方法具体为:通过flume或者fluent的采集工具将数据提交到Kafka队列。
Kafka是一种分布式的基于发布/订阅的消息系统,以时间复杂度为O(1)的方式提供消息持久化能力,并保证即使对TB级以上数据也能保证常数时间的访问性能。所以,在上述实施例中采用log4j2的Kafka组件直接将日志写入到Kafka队列,由于Kafka具备高吞吐率,同时支持离线数据处理和实时数据处理,所以可以将所述访问日志作为请求事件源传递至消息队列的优选方法。
步骤S102解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。
在上述步骤S101中,解析包括但不限于:日志以JSON的格式存储,可以采用JSON库将对应的请求消息转换成封装好的对象。JSON是一种轻量级的数据格式,易于程序员阅读和编写,同时也易于机器解析和生成。JSON可以将JavaScr ipt对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户机传递给服务器端程序。
在一些实施例中,解析所述消息队列中的访问日志的方法至少包括:一处理程序,用以将正确的消息保存到本地库中,再去做同步,如果处理失败则自动重试,所述自动重试的次数不大于3次,若大于3次则进行人工处理。
在一些实施例中,方法还包括:在写方法上加注释,再编写处理程序。在本申请中使用该注解的目的是用来找出需要做数据同步的服务,系统在做处理的时候会查看服务上有没有该注解,如果有就输出同步日志到队列。如果没有就不做处理。比如:会员模块有注册、更新、查询等服务,这里只有注册、更新需要做数据同步,而查询是不需要的。这种情况下只需要对注册、更新加上注解即可。
在本申请中,使用注解可以减少无效的日志写入队列,同时,也可以提升同步处理效率。
在一些实施例中,将日志写入老系统的数据库,然后配置flume或者fluent来sink日志到kafka队列。
在一些实施例中,方法还包括:采用hibernate、mybatis或者任一db框架来进行新老数据库中数据的提取和写入。
上述实施例中,基于HTTP协议限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。另外,HTTP协议是无状态协议,即是指协议对于事务处理没有记忆能力,在服务器不需要先前信息时的应答就较快。另外,JSON格式可以表示数组和复杂的对象,而不仅仅是键和值的简单列表,对于异步数据同步而言具有更好地适应性。
图2是本发明中的系统的结构示意图;系统包括:拦截单元1,用以拦截客户端的接口请求,并记录接口访问日志,队列单元2,用以将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,以及,处理程序3,用以解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。在所述拦截单元1采用切面技术来拦截接口请求。具体地,所述切面技术采用:jaxrs的请求过滤器、servlet的过滤器、spring mvc的拦截器中的一种或者多种,用以提取所述接口请求中的入参、出参、url以及method的数据。在所述队列单元2中将所述访问日志作为请求事件源传递至消息队列的方法具体为:采用log4j2的kafka组件直接将日志写入到kafka队列。和/或,将所述访问日志作为请求事件源传递至消息队列的方法具体为:通过flume或者fluent的采集工具将数据提交到kafka队列,也可以将日志写入老系统的数据库,然后配置flume或者fluent来sink日志到kafka队列。作为本实施例中的优选,在所述处理程序3中,解析所述消息队列中的访问日志的方法至少包括:一处理程序,用以将正确的消息保存到本地库中,再去做同步,如果处理失败则自动重试,所述自动重试的次数不大于3次,若大于3次则进行人工处理。
本实施例中的系统,由于采用了队列单元2,可以有效地降低延迟,同时具备高可扩展能力。由于处理程序3解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库,使得整个系统复杂度可控、数据库无关。另外,由于拦截单元1,拦截客户端的接口请求,并记录接口访问日志降低了应用侵入性。
图3图1中的进一步处理步骤示意图;解析所述消息队列中的访问日志的方法至少包括:一处理程序,用以将正确的消息保存到本地库中,再去做同步,如果处理失败则自动重试,所述自动重试的次数不大于3次,若大于3次则进行人工处理。
具体包括步骤为:
步骤S200从kafka提取数据同步的日志
步骤S201解析日志
步骤S202提取URL等数据放入exchange头
步骤S203保存数据同步请求事件
步骤S204根据URL匹配到对应的处理程序
步骤S205调用对应的处理程序处理同步请求
若处理失败且失败次数小于3,则进入步骤S206数据放回队列
若处理成功或者失败的次数不小于3,则进入步骤S207处理完成更新完成数据
图5是图1中的方法具体实施方式示意图;
step1客户发起写入请求到新的系统;
step 2系统接收请求后分析该请求是否需要做数据同步;
step 3如果需要做数据同步,则DataSyncFilter数据同步过滤器会将对应的请求和响应信息进行封装,然后写入队列;
step 4处理程序会从队列里提取消息;
step 5处理程序解析消息,将其转换回封装的对象;
step 6处理程序根据请求和响应去新的库里提取数据;
step 7处理程序将新的数据映射成老的数据;
step 8处理程序保存老的数据到老系统的数据库。
首先,拦截应用系统的接口日志。这里采用切面技术(切面如:jaxrs的请求过滤器、servlet的过滤器、spring mvc的拦截器等)来拦截系统的请求,通过过滤器来提取请求的入参、出参、url、method等数据。其次,本方案采用log4j2的kafka组件直接将日志写入到kafka队列的。当然,也可以通过flume、fluent这样的采集工具将数据提交到kafka。接着,构建处理程序从kafka提取数据进行处理、做好数据转换、保存数据到新的库里。处理程序会将正确的消息保存到本地库中,然后再去做同步,如果处理失败会自动重试。重试是有次数限制的,系统默认的重试次数是3次,大于3次说明需要人工介入进行特殊处理了。大于3次的原因有很多,可能是数据映射做错了,或者是数据库磁盘满了等。
最后,接入并使用数据同步呢,在需要做数据同步的写方法上加@DataSyncLogged,然后编写处理程序即可。这里的处理程序需要接入者完成新老表的数据映射,保存数据到新的库。使用@DataSyncLogged该注解的目的是用来找出需要做数据同步的服务,系统在做处理的时候会查看服务上有没有该注解,如果有就输出同步日志到队列。如果没有就不做处理。
优选地,接入者如果觉得使用log4j2直接写入日志到kafka对应用有比较大的影响,可以考虑将日志写入本低文件系统。然后配置flume或者fluent来sink日志到kafka队列也可以。
优选地,接入者如果不想使用kafka,那么可以更换掉。只是要注意下对应的处理程序的数据来源需要调整为新的数据源,如:hbase等。
优选地,接入者可以选择自己喜欢的数据库框架来做数据的提取和写入,hibernate、mybatis或者其他的db框架任君选择。
上述方法,可以适用于本申请中的系统,拦截单元1,用以拦截客户端的接口请求,并记录接口访问日志,队列单元2,用以将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,以及,处理程序3,用以解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。
图6是图1中的方法另一具体实施方式示意图。
Step1客户发起写入请求到新的系统;
Step2系统接收请求后分析该请求是否需要做数据同步;
Step3如果需要做数据同步,那么DataSync Filter数据同步过滤器会将对应的请求和响应信息进行封装,然后写入日志文件;
Step4采集程序(如:flume、fluent)会采集日志并写入队列;
Step5处理程序会从队列里提取消息;
Step6处理程序解析消息,将其转换回封装的对象;
Step7处理程序根据请求和响应去新的库里提取数据;
Step8处理程序将新的数据映射成老的数据;
Step9处理程序保存老的数据到老系统的数据库。
首先,拦截应用系统的接口日志。这里采用切面技术(切面如:jaxrs的请求过滤器、servlet的过滤器、spring mvc的拦截器等)来拦截系统的请求,通过过滤器来提取请求的入参、出参、url、method等数据。其次,本方案采用log4j2的kafka组件直接将日志写入到kafka队列的。当然,也可以通过flume、fluent这样的采集工具将数据提交到kafka。接着,构建处理程序从kafka提取数据进行处理、做好数据转换、保存数据到新的库里。处理程序会将正确的消息保存到本地库中,然后再去做同步,如果处理失败会自动重试。重试是有次数限制的,系统默认的重试次数是3次,大于3次说明需要人工介入进行特殊处理了。大于3次的原因有很多,可能是数据映射做错了,或者是数据库磁盘满了等。
最后,接入并使用数据同步呢,在需要做数据同步的写方法上加@DataSyncLogged,然后编写处理程序即可。这里的处理程序需要接入者完成新老表的数据映射,保存数据到新的库。使用@DataSyncLogged该注解的目的是用来找出需要做数据同步的服务,系统在做处理的时候会查看服务上有没有该注解,如果有就输出同步日志到队列。如果没有就不做处理。
上述方法,可以适用于本申请中的系统,拦截单元1,用以拦截客户端的接口请求,并记录接口访问日志,队列单元2,用以将所述访问日志作为请求事件源传递至消息队列,解析所述消息队列中的访问日志,以及,处理程序3,用以解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库。
虽然本公开以具体结构特征和/或方法动作来描述,但是可以理解在所附权利要求书中限定的本公开并不必然限于上述具体特征或动作。而是,上述具体特征和动作仅公开为实施权利要求的示例形式。

Claims (10)

1.基于http服务切面与日志系统的异步数据同步方法,其特征在于包括如下步骤:
拦截客户端的接口请求,并记录接口访问日志,
将所述访问日志作为请求事件源传递至kafka队列,解析所述kafka队列中的访问日志,
所述解析所述kafka队列中的访问日志的步骤包括:
从kafka队列提取数据同步的日志,解析日志;提取URL数据放入exchange头,保存数据同步请求事件;根据URL数据匹配到对应的处理程序,调用对应的处理程序处理同步请求;
所述处理程序的建立步骤包括:构建处理程序从kafka队列提取数据进行处理、做好数据转换、保存数据到新的库里,处理程序将正确的消息保存到本地库中,然后再去做同步;
解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库;
所述将数据转换后进行新老系统的数据映射后再写入新数据库的步骤包括:
接入并使用数据同步,在需要做数据同步的写方法上加注解用于找出需要做数据同步的服务,查看服务上有没有该注解,如果查看服务上有该注解,则输出同步日志到队列。
2.根据权利要求1所述的异步数据同步方法,其特征在于,拦截客户端的接口具体包括:采用切面技术来拦截接口请求。
3.根据权利要求2所述的异步数据同步方法,其特征在于,所述切面技术采用:jaxrs的请求过滤器、servlet的过滤器、spring mvc的拦截器中的一种或者多种,用以提取所述接口请求中的入参、出参、url以及method的数据。
4.根据权利要求1所述的异步数据同步方法,其特征在于,将所述访问日志作为请求事件源传递至kafka队列的方法具体为:
采用log4j2的kafka组件直接将日志写入到kafka队列。
5.根据权利要求1所述的异步数据同步方法,其特征在于,将所述访问日志作为请求事件源传递至kafka队列的方法具体为:通过flume或者fluent的采集工具将日志提交到kafka队列。
6.根据权利要求1所述的异步数据同步方法,其特征在于,解析所述消息队列中的访问日志的方法至少包括:一处理程序,用以将正确的消息保存到本地库中,再去做同步,如果处理失败则自动重试,所述自动重试的次数不大于3次,若大于3次则进行人工处理。
7.根据权利要求1所述的异步数据同步方法,其特征在于,还包括:在写方法上加注释,再编写处理程序。
8.根据权利要求5所述的异步数据同步方法,其特征在于,将日志写入老系统的数据库,然后配置flume或者fluent来sink日志到kafka队列。
9.根据权利要求1所述的异步数据同步方法,其特征在于,还包括:采用hibernate、mybatis或者任一db框架来进行新老数据库中数据的提取和写入。
10.基于http服务切面与日志系统的异步数据同步系统,其特征在于,包括:
一拦截单元,用以拦截客户端的接口请求,并记录接口访问日志,
一队列单元,用以将所述访问日志作为请求事件源传递至kafka队列,解析所述kafka队列中的访问日志;
所述解析所述kafka队列中的访问日志包括:
从kafka队列提取数据同步的日志,解析日志;提取URL数据放入exchange头,保存数据同步请求事件;根据URL数据匹配到对应的处理程序,调用对应的处理程序处理同步请求;
所述处理程序的建立包括:构建处理程序从kafka队列提取数据进行处理、做好数据转换、保存数据到新的库里,处理程序将正确的消息保存到本地库中,然后再去做同步;一处理程序,用以解析后还原请求事件的入参和/或出参,将数据转换后进行新老系统的数据映射后再写入新数据库;
所述将数据转换后进行新老系统的数据映射后再写入新数据库包括:
接入并使用数据同步,在需要做数据同步的写方法上加注解用于找出需要做数据同步的服务,查看服务上有没有该注解,如果查看服务上有该注解,则输出同步日志到队列。
CN201611124276.6A 2016-12-08 2016-12-08 基于http服务切面与日志系统的异步数据同步方法和系统 Active CN106682119B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611124276.6A CN106682119B (zh) 2016-12-08 2016-12-08 基于http服务切面与日志系统的异步数据同步方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611124276.6A CN106682119B (zh) 2016-12-08 2016-12-08 基于http服务切面与日志系统的异步数据同步方法和系统

Publications (2)

Publication Number Publication Date
CN106682119A CN106682119A (zh) 2017-05-17
CN106682119B true CN106682119B (zh) 2020-01-17

Family

ID=58868455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611124276.6A Active CN106682119B (zh) 2016-12-08 2016-12-08 基于http服务切面与日志系统的异步数据同步方法和系统

Country Status (1)

Country Link
CN (1) CN106682119B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679058B (zh) * 2017-06-26 2021-04-06 平安科技(深圳)有限公司 数据同步方法、装置及计算机可读存储介质
CN109635039B (zh) * 2018-11-23 2021-08-24 金色熊猫有限公司 多数据中心数据同步方法及系统
CN109992329B (zh) * 2019-03-27 2020-05-01 南京联创北斗技术应用研究院有限公司 一种基于后端切面技术的方法级性能分析方法
CN110222118B (zh) * 2019-05-23 2022-04-05 上海易点时空网络有限公司 基于队列的异步数据处理方法及装置
CN110611592B (zh) * 2019-09-20 2023-04-07 中国联合网络通信集团有限公司 日志记录方法及设备
CN110795413A (zh) * 2019-10-30 2020-02-14 珠海港联科技有限公司 一种带有日志记录功能的数据库操作接口服务系统
CN110825465B (zh) * 2019-11-06 2024-05-07 北京达佳互联信息技术有限公司 日志数据处理方法、装置、电子设备及存储介质
CN111143304B (zh) * 2019-11-20 2023-09-29 杭州端点网络科技有限公司 一种基于请求链路的微服务系统异常日志分析方法
CN111694799B (zh) * 2020-04-30 2023-04-25 武汉达梦数据库股份有限公司 基于日志解析同步的并行日志解析方法和数据同步系统
CN111813572A (zh) * 2020-06-16 2020-10-23 上海中通吉网络技术有限公司 记录用户操作数据变动的方法、装置及设备、存储介质
CN111930843B (zh) * 2020-08-11 2023-07-28 中国工商银行股份有限公司 基于数据库的数据系统及处理方法
CN112948491B (zh) * 2021-02-26 2023-09-22 湖北华中电力科技开发有限责任公司 数据同步的方法、装置、终端设备及计算机可读存储介质
CN113392161A (zh) * 2021-07-08 2021-09-14 苏州海管家物流科技有限公司 数据双向实时同步系统
CN114584457A (zh) * 2022-03-22 2022-06-03 北京结慧科技有限公司 一种用于系统的日志分析报警方法及平台

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461369B2 (en) * 2001-03-30 2008-12-02 Bmc Software, Inc. Java application response time analyzer

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506047B2 (en) * 2001-03-30 2009-03-17 Bmc Software, Inc. Synthetic transaction monitor with replay capability
CN103401934A (zh) * 2013-08-06 2013-11-20 广州唯品会信息科技有限公司 获取日志数据的方法和系统
CN105243067B (zh) * 2014-07-07 2019-06-28 北京明略软件系统有限公司 一种实现实时增量同步数据的方法及装置
CN105491106A (zh) * 2015-11-18 2016-04-13 中国石油天然气集团公司 一种石油测井主从数据库系统实时同步系统和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461369B2 (en) * 2001-03-30 2008-12-02 Bmc Software, Inc. Java application response time analyzer

Also Published As

Publication number Publication date
CN106682119A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106682119B (zh) 基于http服务切面与日志系统的异步数据同步方法和系统
US11477298B2 (en) Offline client replay and sync
JP5818394B2 (ja) 大量データプラットフォームを操作するシステム及び方法
US7099926B1 (en) Object caching and update queuing technique to improve performance and resource utilization
US7818294B2 (en) Apparatus, system, and method for implementing an IMS SOAP gateway
US10069942B2 (en) Method and apparatus for changing configurations
US20080071922A1 (en) Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment
CN110502583B (zh) 分布式数据同步方法、装置、设备及可读存储介质
CN108038207A (zh) 一种日志数据处理系统、方法和服务器
CN109327511B (zh) 一种基于http协议的数据请求方法和服务器
CN104156300A (zh) 日志管理系统和日志管理方法
US11689626B2 (en) Transport channel via web socket for ODATA
CN111338893A (zh) 进程日志处理方法、装置、计算机设备以及存储介质
KR101357135B1 (ko) 로그 정보 수집 장치
CN112069264A (zh) 异构数据源采集方法、装置、电子设备及存储介质
CN113312428A (zh) 多源异构训练数据融合方法、装置和设备
CN114579664A (zh) 一种SQLite数据库远程实时增量同步方法及系统
US9307059B2 (en) Retry mechanism for data loading from on-premise datasource to cloud
CN112817539A (zh) 一种工业数据存储方法、系统、电子设备及存储介质
CN113220730B (zh) 业务数据的处理系统
US11442758B2 (en) Integration flow execution renew
CN107330089B (zh) 跨网络结构化数据收集系统
CN113965608A (zh) 一种数控设备数据收集及指令下发系统
US10218591B2 (en) Embedded performance monitoring of a DBMS
WO2016130825A1 (en) Method and apparatus for changing configurations

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: Room 2328, room 8, Taihe square, Shangcheng District, Hangzhou, Zhejiang Province, Zhejiang

Applicant after: Pin Guan Network Technology Co., Ltd.

Address before: Room 2328, room 8, Taihe square, Shangcheng District, Hangzhou, Zhejiang Province, Zhejiang

Applicant before: Hangzhou pin Guan Network Technology Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190306

Address after: Room 135, No. 100 Unity Road, Nanjing Software Park (West District), Nanjing High-tech Development Zone, Nanjing, Jiangsu Province, 210000

Applicant after: Nanjing Kakao Network Technology Co., Ltd.

Address before: 310000 Room 2328, Taihe Plaza, Shangcheng District, Hangzhou City, Zhejiang Province

Applicant before: Pin Guan Network Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210126

Address after: Room 801, 8 / F, 292 Yan'an Road, Shangcheng District, Hangzhou, Zhejiang 310000

Patentee after: Hangzhou Rubik's cube Internet Software Co.,Ltd.

Address before: Room 135, No. 100 Unity Road, Nanjing Software Park (West District), Nanjing High-tech Development Zone, Nanjing, Jiangsu Province, 210000

Patentee before: Nanjing Kakao Network Technology Co.,Ltd.