CN117194562A - 数据同步方法和装置、电子设备和计算机可读介质 - Google Patents
数据同步方法和装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN117194562A CN117194562A CN202310917341.4A CN202310917341A CN117194562A CN 117194562 A CN117194562 A CN 117194562A CN 202310917341 A CN202310917341 A CN 202310917341A CN 117194562 A CN117194562 A CN 117194562A
- Authority
- CN
- China
- Prior art keywords
- data
- transaction data
- transaction
- message
- probe
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000007405 data analysis Methods 0.000 claims abstract description 20
- 239000000523 sample Substances 0.000 claims description 66
- 230000015654 memory Effects 0.000 claims description 35
- 230000001360 synchronised effect Effects 0.000 claims description 27
- 238000013481 data capture Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006798 recombination Effects 0.000 claims description 9
- 238000005215 recombination Methods 0.000 claims description 9
- 230000008521 reorganization Effects 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000009193 crawling Effects 0.000 claims 6
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 42
- 238000010586 diagram Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 15
- 230000008520 organization Effects 0.000 description 11
- 239000010410 layer Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 239000012530 fluid Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明公开了一种数据同步方法和装置、电子设备和计算机可读介质,涉及计算机技术领域。该方法包括:利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群;对第一系统的交易数据进行哈希处理,得到第一系统的交易数据的上链存证数据,将第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从区块链网络获取第一系统的交易数据的上链存证数据;在收到第二系统的数据同步请求后,通过第一系统的消息中间件集群,将第一系统的交易数据同步至第二系统。该实施方式能够主动且准实时地获取机构内部的交易数据,避免丢失数据,保证抓取的数据不可篡改且可追溯,为数据分析提供可靠数据来源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据同步方法和装置、电子设备和计算机可读介质。
背景技术
在金融科技行业,采用监管探针、外部感知、信息共享与报送等方式实时采集分析金融创新风险情况,对潜在风险的提前探测和综合评估,打造更加安全、便捷、透明的金融体系。监管探针是一种新型的金融监管工具,其核心思想是分析网络流量中的目标报文来抓取机构内交易数据,增强监管的自动化、智能化和准确性。现有监管探针方案在当网络不可靠时会丢失TCP(传输层协议)数据包,且通过旁路抓取网络流量的方式无法保证数据包的重新传输能被探针全部抓取到,所以有一定概率会丢失数据。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
会存在丢失数据的情况,且无法保证抓取的数据不被篡改,无法保证可追溯性,探针的可用性、容灾性、扩展能力均较差。
发明内容
有鉴于此,本发明实施例提供一种数据同步方法和装置,能够主动且准实时地获取机构内部的交易数据,避免丢失数据,保证抓取的数据不可篡改且可追溯,为监管机构进行数据分析提供可靠的数据来源,且探针高可用,容灾和扩展能力强。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据同步方法。
一种数据同步方法,包括:利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群;对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从所述区块链网络获取所述第一系统的交易数据的上链存证数据;在收到所述第二系统根据所述第一系统的交易数据的上链存证数据发出的数据同步请求后,通过所述第一系统的消息中间件集群,将所述第一系统的交易数据同步至所述第二系统。
可选地,所述利用数据抓取组件抓取第一系统的交易数据,包括:利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据。
可选地,所述利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据,包括:从所述第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的所述流量包括所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
可选地,所述利用数据抓取组件抓取第一系统的交易数据,包括:利用所述第一系统的至少两个探针服务器中部署的探针程序,抓取所述第一系统的交易数据,所述至少两个探针服务器设置在所述第一系统的同一互联网数据中心中,且采用相同的探针程序配置。
可选地,所述利用数据抓取组件抓取第一系统的交易数据,包括:利用所述第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
可选地,在所述探针程序部署在docker容器(容器技术的一种产品实现)中的情况下,在所述容器运行所述探针程序的镜像文件,以抓取所述第一系统的交易数据,镜像文件包括基于所述docker容器的busybox(一个集成了Linux命令和工具的软件工具箱)制作的基础镜像。
可选地,所述利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:通过所述探针程序监控所述第一系统交易时的报文数据,并从所述报文数据中提取出指定地址和协议的目标报文数据,将所述目标报文数据解析为CSV(逗号分隔值)格式的交易数据,将所述CSV格式的交易数据推送到所述第一系统的消息中间件集群。
可选地,所述将所述目标报文数据解析为CSV格式的交易数据,包括:将提取出的所述目标报文数据存放到共享内存,以从所述共享内存读取所述目标报文数据并进行报文重组,得到组合后的TCP数据流,根据HTTP协议对所述TCP数据流进行数据解析,得到JSON格式数据,从所述JSON格式数据提取出预设业务的交易数据,对所述预设业务的交易数据重新编排为所述CSV格式,得到所述CSV格式的交易数据。
可选地,提取出的所述目标报文数据存放到多个共享内存中,通过多进程方式执行所述报文重组、所述数据解析和所述编排的操作。
可选地,所述将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群。
可选地,所述将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群,包括:将所述第一系统的交易数据逐条或批量发送到所述第一系统的上链服务,由所述上链服务确定所述第一系统的交易数据的批次信息,并将所述第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将所述第一数量的交易数据和对应的批次信息作为一条记录推送到所述第一系统的消息中间件集群。
可选地,对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,包括:对所述得到的批次的交易数据进行哈希处理,得到所述得到的批次的交易数据的哈希值;将所述得到的批次的交易数据的哈希值和对应的批次信息存储到所述区块链网络,以由所述第二系统根据所述哈希值和对应的批次信息发出所述数据同步请求。
可选地,所述第一系统的消息中间件集群包括多个;所述将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:将所述第一系统的交易数据推送到所述第一系统的当前存活的各消息中间件集群。
根据本发明实施例的另一方面,提供了一种数据同步方法。
一种数据同步方法,包括:从区块链网络获取第一系统的交易数据的上链存证数据,所述上链存证数据是所述第一系统对抓取的交易数据进行哈希处理得到的;根据所述第一系统的交易数据的上链存证数据,确定待同步到第二系统的所述第一系统的交易数据;通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统。
可选地,所述通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统,包括:通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到所述第二系统中对应的存储位置。
根据本发明实施例的又一方面,提供了一种数据同步装置。
一种数据同步装置,包括:交易数据抓取模块,用于利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群;上链存证模块,用于对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从所述区块链网络获取所述第一系统的交易数据的上链存证数据;交易数据同步模块,用于在收到所述第二系统根据所述第一系统的交易数据的上链存证数据发出的数据同步请求后,通过所述第一系统的消息中间件集群,将所述第一系统的交易数据同步至所述第二系统。
可选地,所述交易数据抓取模块还用于:利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据。
可选地,所述交易数据抓取模块还用于:从所述第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的所述流量包括所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
可选地,所述交易数据抓取模块还用于:利用所述第一系统的至少两个探针服务器中部署的探针程序,抓取所述第一系统的交易数据,所述至少两个探针服务器设置在所述第一系统的同一互联网数据中心中,且采用相同的探针程序配置。
可选地,所述交易数据抓取模块还用于:利用所述第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
可选地,所述交易数据抓取模块还用于:在所述探针程序部署在docker容器(容器技术的一种产品实现)中的情况下,在所述容器运行所述探针程序的镜像文件,以抓取所述第一系统的交易数据,镜像文件包括基于所述docker容器的busybox制作的基础镜像。
可选地,所述交易数据抓取模块还用于:通过所述探针程序监控所述第一系统交易时的报文数据,并从所述报文数据中提取出指定地址和协议的目标报文数据,将所述目标报文数据解析为CSV格式的交易数据,将所述CSV格式的交易数据推送到所述第一系统的消息中间件集群。
可选地,所述交易数据抓取模块包括解析子模块,用于:将提取出的所述目标报文数据存放到共享内存,以从所述共享内存读取所述目标报文数据并进行报文重组,得到组合后的TCP(传输层协议)数据流,根据HTTP协议对所述TCP数据流进行数据解析,得到JSON格式数据,从所述JSON(一种数据表示格式,JavaScript Object Notation)格式数据提取出预设业务的交易数据,对所述预设业务的交易数据重新编排为所述CSV格式,得到所述CSV格式的交易数据。
可选地,提取出的所述目标报文数据存放到多个共享内存中,所述解析子模块还用于:通过多进程方式执行所述报文重组、所述数据解析和所述编排的操作。
可选地,所述交易数据抓取模块包括推送子模块,用于:将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群。
可选地,所述推送子模块还用于:将所述第一系统的交易数据逐条或批量发送到所述第一系统的上链服务,由所述上链服务确定所述第一系统的交易数据的批次信息,并将所述第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将所述第一数量的交易数据和对应的批次信息作为一条记录推送到所述第一系统的消息中间件集群。
可选地,所述上链存证模块还用于:对所述得到的批次的交易数据进行哈希处理,得到所述得到的批次的交易数据的哈希值;将所述得到的批次的交易数据的哈希值和对应的批次信息存储到所述区块链网络,以由所述第二系统根据所述哈希值和对应的批次信息发出所述数据同步请求。
可选地,所述第一系统的消息中间件集群包括多个;所述交易数据抓取模块还用于:将所述第一系统的交易数据推送到所述第一系统的当前存活的各消息中间件集群。
根据本发明实施例的又一方面,提供了一种数据同步装置。
一种数据同步装置,包括:上链存证数据获取模块,用于从区块链网络获取第一系统的交易数据的上链存证数据,所述上链存证数据是所述第一系统对抓取的交易数据进行哈希处理得到的;待同步数据确定模块,用于根据所述第一系统的交易数据的上链存证数据,确定待同步到第二系统的所述第一系统的交易数据;数据同步执行模块,用于通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统。
可选地,所述数据同步执行模块还用于:通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到所述第二系统中对应的存储位置。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的数据同步方法。
根据本发明实施例的又一方面,提供了一种计算机可读存储介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的数据同步方法。
上述发明中的一个实施例具有如下优点或有益效果:利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群;对第一系统的交易数据进行哈希处理,得到第一系统的交易数据的上链存证数据,将第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从区块链网络获取第一系统的交易数据的上链存证数据;在收到第二系统根据第一系统的交易数据的上链存证数据发出的数据同步请求后,通过第一系统的消息中间件集群,将第一系统的交易数据同步至第二系统。能够主动且准实时地获取机构内部的交易数据,避免数据丢失,保证抓取的数据不可篡改且可追溯,为监管机构进行数据分析提供可靠的数据来源,且可利用第一系统的至少两个探针服务器中部署的探针程序,抓取第一系统的交易数据,至少两个探针服务器设置在第一系统的同一互联网数据中心中,且采用相同的探针程序配置,探针高可用,容灾和扩展能力强。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的数据同步方法的主要步骤示意图;
图2是本发明一个实施例的探针服务器部署示意图;
图3是根据本发明一个实施例的探针程序的工作流程示意图;
图4是根据本发明一个实施例的探针程序的工作流程中调用的函数库及依赖关系示意图;
图5是根据本发明一个实施例的报文解析的多进程处理流程示意图;
图6是根据本发明另一个实施例的数据同步方法的主要步骤示意图;
图7是根据本发明一个实施例的区块链数据接入逻辑示意图;
图8是根据本发明一个实施例的数据采集组件的程序设计示意图;
图9是根据本发明一个实施例的数据同步的总体架构示意图;
图10是根据本发明一个实施例的数据同步的全链路流程示意图;
图11是根据本发明一个实施例的探针程序、Kafka集群、上链服务的部署示意图;
图12是根据本发明一个实施例的上链服务的数据流图;
图13是根据本发明一个实施例的区块链架构示意图;
图14是根据本发明一个实施例的消息中间件集群部署示意图;
图15是根据本发明一个实施例的数据同步装置的主要模块示意图;
图16是根据本发明另一个实施例的数据同步装置的主要模块示意图;
图17是本发明实施例可以应用于其中的示例性系统架构图;
图18是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明一个实施例的数据同步方法的主要步骤示意图。如图1所示,本发明一个实施例的数据同步方法主要包括如下的步骤S101至步骤S103。本实施例的数据同步方法在第一系统侧执行。
步骤S101:利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群;
步骤S102:对第一系统的交易数据进行哈希处理,得到第一系统的交易数据的上链存证数据,将第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从区块链网络获取第一系统的交易数据的上链存证数据;
区块链网络包括分别位于第一系统侧、第二系统侧的区块链节点。
步骤S103:在收到第二系统根据第一系统的交易数据的上链存证数据发出的数据同步请求后,通过第一系统的消息中间件集群,将第一系统的交易数据同步至第二系统。
具体地,第一系统的交易数据同步至第二系统的消息中间件集群中。
在一个实施例中,在金融监管合规场景,第一系统可以是机构端系统,机构即数字货币运营机构,例如各商业银行或其他的金融业务机构,第二系统可以是央行端系统,央行即中央银行。
数据抓取组件可以是探针,探针是以软件或硬件形式部署在某系统中抓取目标数据的组件,对于软件形式的探针,可称为探针程序。监管探针的优势在于对具体系统入侵度较低,设置灵活,并能深入反映被监管对象的内部运行机制。
消息中间件集群例如Kafka集群。
本发明实施例的数据同步方法可以应用于金融监管合规场景,通过消息中间件解耦数据的生产和消费,使用区块链的不可伪造和可追溯特性来保证监管探针抓取的数据可防篡改和防抵赖,最后将数据汇集在大数据平台中,使用探针技术配合大数据技术来实现主动抓取机构内交易数据并生成分析报告。
在金融监管合规场景,第一系统的交易数据来源主要是第一系统的移动APP,Web页面(网银)和机构内部的柜面系统业务数据。
在一个实施例中,利用数据抓取组件抓取第一系统的交易数据,具体可以包括:利用部署在第一系统的网关应用层的探针程序,抓取第一系统的交易数据。
具体地,利用部署在第一系统的网关应用层的探针程序,抓取第一系统的交易数据,包括:从第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的流量包括第一系统的交易数据,该应用用于第一系统执行交易以得到第一系统的交易数据。具体可以利用iptables复制流量,进行同网段的流量复制或跨网段的流量复制,iptables的主要功能是实现对网络数据包进出设备及转发的控制。
在另一个实施例中,利用数据抓取组件抓取第一系统的交易数据,具体可以包括:利用第一系统的至少两个探针服务器中部署的探针程序,抓取第一系统的交易数据。至少两个探针服务器设置在第一系统的同一互联网数据中心(IDC)中,各探针服务器拥有相同的技术规格配置,每台探针服务器分别部署一套探针程度,且采用相同的探针程序配置,各探针服务器分别与第一系统的消息中间件集群对接。图2是本发明一个实施例的探针服务器部署示意图,图2中以两台探针服务器为例,即探针服务器A、B,第一系统的消息中间件集群即Kafka集群。每个机构的一个IDC至少部署两台探针服务器,可以保证高可用性和较强的容灾能力。
在又一个实施例中,利用数据抓取组件抓取第一系统的交易数据,包括:利用第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取第一系统的交易数据,该应用用于第一系统执行交易以得到第一系统的交易数据。通过这种方式,直接在应用所在物理机、虚机或容器中启动探针程序即可,由于探针使用了容器化部署方式,直接启动。
在探针程序部署在docker容器中的情况下,在容器运行探针程序的镜像文件,以抓取第一系统的交易数据,镜像文件包括基于docker容器的busybox制作的基础镜像。
为了实现跨平台部署,可将探针程序进行了容器化改造。使用docker容器运行时运行探针的镜像文件,可以达到在不同操作系统平台上运行探针程序。为了最小化探针程序的依赖,缩减镜像文件的大小,可以选取busybox作为基础镜像,此镜像大小为5MB左右,加上探针程序,镜像大小控制在17MB左右,方便部署与镜像管理。使用docker build命令生成探针镜像文件,此文件中包含探针程序(probe),使用的库(lib),自动拉起定时任务(restart_probe.cron)等程序文件。探针容器化后,可以利用流量复制的方法将流量分摊,通过增加探针和配置流量可以提高横向处理能力。
在一个实施例中,利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群,具体可以包括:通过探针程序监控第一系统交易时的报文数据,并从报文数据中提取出指定地址和协议的目标报文数据,将目标报文数据解析为CSV格式的交易数据,将CSV格式的交易数据推送到第一系统的消息中间件集群。
将目标报文数据解析为CSV格式的交易数据,具体可以包括:将提取出的目标报文数据存放到共享内存,以从共享内存读取目标报文数据并进行报文重组,得到组合后的TCP数据流,根据HTTP协议对TCP数据流进行数据解析,得到JSON格式数据,从JSON格式数据提取出预设业务的交易数据,对预设业务的交易数据重新编排为CSV格式,得到CSV格式的交易数据。预设业务是根据需求指定的。
探针程序(probe)依赖于BPF(Berkeley Packet Filter,柏克莱封包过滤器)将数据包拷贝到用户程序进行处理。探针程序的工作流程包括数据获取、数据重组、数据解析、数据发送的步骤,如图3所示,是本发明一个实施例的探针程序的工作流程示意图,数据获取步骤主要是基于libpcap库,监控端口通信中的报文数据,可以将指定地址和协议的所有报文数据(即目标报文数据)提取出来,过滤得到TCP包。创建共享内存,并将提出来的目标报文数据发送到此块共享内存中,此共享内存通过信号量进行维护,信号量控制共享内存最大支持32000次读取(只读或只写次数)。数据重组步骤即进行报文重组,共享内存的存在机制即为报文重组提供缓冲的数据池,将共享内存中的数据读取出来之后,可调用libnids库中的相应函数完成TCP报文的重组排序工作。一个完整TCP数据流组合完成后,可根据HTTP协议对数据解析,得到上下行JSON格式的报文,然后进行下一步的数据解析步骤。数据解析步骤即进行报文解析,将报文数据(JSON格式数据)进行数据分析,采用cjson库来完成,筛选出需要的业务交易数据(即预设业务的交易数据),剔除掉其他报文数据,并将数据重新编排,形成CSV格式,得到CSV格式的交易数据。数据发送步骤主要是设置消息中间件,并将整理好的数据信息发送到消息中间件中,等待区块链端读取上链。本发明一个实施例中的探针程序的工作流程中调用的函数库及依赖关系具体如图4所示,libpcap是数据包捕获函数库,cjson是Json格式的解析库,libnids是网络入侵监测系统函数库,libnet是一个小型的接口函数库,提供低层网络数据包的构造、处理和发送功能,librdkafka是c语言实现的apachekafka的高性能客户端,为生产和使用kafka提供高效可靠的客户端。
提取出的目标报文数据可以存放到多个共享内存中,通过多进程方式执行报文重组、数据解析和编排的操作。
由于BPF是基于单进程模型的,所以可以考虑在报文解析层面进行多进程处理,这样可以横向扩展报文解析能力,充分利用多核CPU的处理能力。本发明一个实施例的报文解析的多进程处理流程如图5所示,图5中以三块共享内存为例,即共享内存1至共享内存3,数据重组步骤包含在报文解析步骤中,数据重组在图5中未示出。
将第一系统的交易数据推送到第一系统的消息中间件集群,具体可以包括:将第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到第一系统的消息中间件集群。
具体地,将第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到第一系统的消息中间件集群,包括:将第一系统的交易数据逐条或批量发送到第一系统的上链服务,由上链服务确定第一系统的交易数据的批次信息,并将第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将第一数量的交易数据和对应的批次信息作为一条记录推送到第一系统的消息中间件集群。
对第一系统的交易数据进行哈希处理,得到第一系统的交易数据的上链存证数据,将第一系统的交易数据的上链存证数据存储到区块链网络,具体可以包括:对得到的批次的交易数据进行哈希处理,得到该得到的批次的交易数据的哈希值;将得到的批次的交易数据的哈希值和对应的批次信息存储到区块链网络,以由第二系统根据哈希值和对应的批次信息发出数据同步请求。上链存证数据可以包括得到的批次的交易数据的哈希值和对应的批次信息。
在一个实施例中,第一系统的消息中间件集群包括多个;将第一系统的交易数据推送到第一系统的消息中间件集群,具体可以将第一系统的交易数据推送到第一系统的当前存活的各消息中间件集群。
图6是根据本发明另一个实施例的数据同步方法的主要步骤示意图。本实施例的数据同步方法在第二系统侧执行。如图6所示,本实施例的数据同步方法主要包括如下的步骤S601至步骤S603。
步骤S601:从区块链网络获取第一系统的交易数据的上链存证数据,该上链存证数据是第一系统对抓取的交易数据进行哈希处理得到的;
步骤S602:根据第一系统的交易数据的上链存证数据,确定待同步到第二系统的第一系统的交易数据;
步骤S603:通过第二系统的消息中间件集群,将待同步的第一系统的交易数据同步到第二系统。
通过第二系统的消息中间件集群,将待同步的第一系统的交易数据同步到第二系统,具体包括:通过第二系统的消息中间件集群,将待同步的第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到第二系统中对应的存储位置。
解析得到的各类数据例如业务发生时间、数据类型、运营机构等信息。
金融监管合规场景中,监管探针程序将机构的交易数据采集后上报区块链平台(即区块链网络),并由区块链平台完成解密、报文转换操作后,通过消息中间件Kafka将各个报文信息发送至大数据平台。大数据平台消费Kafka中的数据,并根据业务发生时间、数据类型、运营机构等信息,完成HDFS(一种分布式文件系统)落盘存储操作。
本发明一个实施例的区块链数据接入逻辑示意图如图7所示,数据消费端采用的数据采集组件具体可以是Flume组件,根据数据类型及运营机构Topic为依据,将数据路由分发到不同的Flume Agent上进行处理,并在Flume中解析业务发生时间、Topic机构编码、业务类型等信息,并解析出的以上信息,存储到第二系统的HDFS存储系统中不同的位置。Topic是Kafka数据写入操作的基本单元,表示一类数据。
本发明一个实施例的数据采集组件的程序设计示意图如图8所示,数据采集组件具体包括Flume Agent1、Flume Agent2、Flume Agent3……,分别对应一个类型(例如DataType1,DataType2,DataType3……等)的交易数据,数据采集组件Flume Agent中需要以下功能:
Source:定义Kafka数据源信息,包括IP,Topic,批量采集配置等信息;
拦截器:解析业务发生时间、机构编码等信息,并定义异常规范,标记异常数据;
选择器:根据拦截器标记信息,进行数据通道进行分流;
Channel:定义数据通道类型;本类程序中采用“File”类型,数据本地落盘,保证数据安全性;
Sink:定义数据通道输出系统类型,采用HDFS Sink格式,将加工后的数据传输到大数据平台存储系统中。其中数据指交易数据。
图9是根据本发明一个实施例的数据同步的总体架构示意图。如图9所示,在机构端系统(即第一系统),监管探针复用机构的网关应用资源,从网络设备(包括虚拟网卡)抓取第一系统的交易数据的数据包,提取关键内容后将推送到机构消息中间件集群,即机构端Kafka集群。上链服务将机构消息中间件集群中的原始数据(即机构端消息中间件集群中的机构端交易数据),划分批次,划分完批次的机构端交易数据称为批次数据,将批次数据的Hash上链存证,将批次数据推送到新的消息中间件中持久化存储。区块链网络和消息中间件分别将批次数据的Hash和原始数据同步到央行端系统(即第二系统)。在央行端系统,链应用提取批次数据的Hash后推送到央行本地消息中间件集群,即央行端Kafka集群。央行大数据平台消费央行消息中间件集群中的批次数据的Hash和原始数据。
图10是根据本发明一个实施例的数据同步的全链路流程示意图。
利用探针程序抓取机构端系统的交易数据,提取报文,具体可以将指定地址和协议的所有报文数据(即目标报文数据)提取出来,可根据需求确定提取哪些地址和协议的报文,将提取的数据推送到机构端系统消息中间件集群,即Kafka1。上链服务消费Kafka1中的数据,并对该数据划分批次,得到划分完批次的机构端交易数据和对应的批次信息,批次信息例如批次号,将划分完批次的机构端交易数据存储到Kafka1。上链服务还计算划分完批次的机构端交易数据的哈希值,得到的该哈希值即为批次数据的Hash,将批次数据的Hash上链存证,机构端区块链节点广播批次数据的Hash,将批次数据的Hash同步到央行端区块链节点,央行端的链应用可以从央行端区块链节点拉取该批次数据的Hash。链应用推送批次数据的Hash至央行端消息中间件集群,即Kafka2。大数据平台可以从Kafka2拉取批次数据的Hash和对应批次的原始数据,即相应批次的机构端交易数据,大数据平台可以对拉取的机构端交易数据进行数据分析等操作。
探针程序可以单条报文向Kafka1推送机构端系统的交易数据,推送的报文格式、数据量和示例如表1所示。
表1
上链服务将划分完批次的机构端交易数据存储到Kafka1,是以批量报文进行推送,推送的报文格式、数据量和示例如表2所示。
表2
上链服务将批次数据的Hash上链存证的数据格式、数据量、示例如表3所示。
表3
/>
图11是根据本发明一个实施例的探针程序、Kafka集群、上链服务的部署示意图。如图11所示,在机构侧,部署拓扑结构涉及三个组件:探针程序、上链服务和Kafka。探针程序部署在机构端系统的网关应用层,其部署架构遵循机构侧网关部署的原则,运营机构目前多采用云化基础设施部署应用,比如使用虚拟机、容器作为应用部署和运行的底层机制,所以探针程序会运行在云平台的虚拟化环境之中,并以多实例的方式部署。
上链服务的部署也应按照机构的应用部署原则实施,机构的应用部署原则是由机构端预先根据业务需要确定的。
Kafka在机构端部署时可按照集群方式部署。因为同城网络时延较小,同城多数据中心可共享一个Kafka集群。异地Kafka集群间不强制要求做集群同步,只要保证高可用和容灾要求即可。具体方案由运营机构根据需要确定。具体部署方案还要考虑机构的DC/EP系统架构(双层运营体系)实现。如图11所示,是以典型的两地三中心为例来说明一种可行的部署方案,机构端采用两地三中心架构,北京两IDC(互联网数据中心)为“双活”,同时处理业务流量;上海IDC为异地灾备数据中心,不处理业务流量,只在北京IDC故障时启用。将机构端系统的交易数据推送到机构端系统的消息中间件集群时,将机构端系统的交易数据推送到机构端系统的当前存活的各消息中间件集群,例如北京两IDC的Kafka集群。
图12是根据本发明一个实施例的上链服务的数据流图。如图12所示,探针抓取的交易数据通过HTTP的方式,直接送入上链服务,其中对交易数据(即图12中的原始数据)可以是批量送入,也可以是逐条送入。图12中为100条一个批次送入上链服务。上链服务会将数据缓存至内存中,然后达到了固定数量,比如是2000条,则将这2000条数据,作为1条Kafka的record(记录),送入Kafka。于此同时,统计本批次的个数,如果到达了某一数量,比如是6000条,则将本批次所有数据进行hash运算,然后上链。具体而言,是将批次号(batchNO)、批次内原始数据条数(txCnt)和hash放到智能合约中。探针抓取的交易数据的最终数据消费方为央行端的大数据平台,大数据平台作为Consumer(消费者)不断消费通过Kafka同步至央行的交易数据。
图13是根据本发明一个实施例的区块链架构示意图。如图13所示,本发明一个实施例的总体架构包括探针、上链服务、机构端Kafka、央行端Kafka、区块链、链读取服务、查询服务、大数据共八部分组成。机构端例如机构A和机构B。探针负责机构端交易数据的报文重组和筛选;上链服务负责分配机构端交易数据的批次号,将原始数据和批次号送入Kafka队列,并且将数据hash上链;机构端Kafka负责交易数据存储和数据同步;央行端Kafka负责临时存储来自机构端Kafka的同步数据和来自链读取服务的数据,并提供给大数据平台消费;区块链负责存储交易数据的hash值;链读取服务负责获取链上的交易数据hash并推送给Kafka,具体可以通过查询智能合约的方式,获取批次的交易数据hash和对应的批次信息;查询服务是对存储在机构端数据的统一查询入口;大数据平台负责分析交易数据,并出具报表。央行端和机构端基于MirrorMaker的数据同步,MirrorMaker是Kafka套件里的一个工具,用来同步集群间的记录。
图14是根据本发明一个实施例的消息中间件集群部署示意图。如图14所示,各运营机构(以机构A、机构B、机构C为例)分别在本地部署一套独立的Kafka集群,本机构探针抓取到的交易数据写入本地部署的Kafka集群内。央行端在本地部署一套Kafka集群,主题及分区副本的数量与运营机构保持一致。在央行端启动多个MirrorMaker进程,MirrorMaker从各运营机构的Kafka集群中拉取消息,同步到央行端Kafka集群,可保证高可用。跨数据中心的数据传输可通过引入消息中间件来进行解耦,例如机构端与央行端连接出现异常,可以待恢复正常后再从机构端Kafka集群同步数据。
图15是根据本发明一个实施例的数据同步装置的主要模块示意图。如图15所示,本发明一个实施例的数据同步装置1500设置于第一系统端,数据同步装置1500主要包括:交易数据抓取模块1501、上链存证模块1502、交易数据同步模块1503。
交易数据抓取模块1501,用于利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群;
上链存证模块1502,用于对第一系统的交易数据进行哈希处理,得到第一系统的交易数据的上链存证数据,将第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从区块链网络获取第一系统的交易数据的上链存证数据;
交易数据同步模块1503,用于在收到第二系统根据第一系统的交易数据的上链存证数据发出的数据同步请求后,通过第一系统的消息中间件集群,将第一系统的交易数据同步至第二系统。
在一个实施例中,交易数据抓取模块1501还用于:利用部署在第一系统的网关应用层的探针程序,抓取第一系统的交易数据。
交易数据抓取模块1501具体可用于:从第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的流量包括第一系统的交易数据,应用用于第一系统执行交易以得到第一系统的交易数据。
在另一个实施例中,交易数据抓取模块1501还用于:利用第一系统的至少两个探针服务器中部署的探针程序,抓取第一系统的交易数据,至少两个探针服务器设置在第一系统的同一互联网数据中心中,且采用相同的探针程序配置。
在又一个实施例中,交易数据抓取模块1501还用于:利用第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取第一系统的交易数据,应用用于第一系统执行交易以得到第一系统的交易数据。
交易数据抓取模块1501还用于:在探针程序部署在docker容器中的情况下,在容器运行探针程序的镜像文件,以抓取第一系统的交易数据,镜像文件包括基于docker容器的busybox制作的基础镜像。
在一个实施例中,交易数据抓取模块1501还用于:通过探针程序监控第一系统交易时的报文数据,并从报文数据中提取出指定地址和协议的目标报文数据,将目标报文数据解析为CSV格式的交易数据,将CSV格式的交易数据推送到第一系统的消息中间件集群。
在一个实施例中,交易数据抓取模块1501包括解析子模块,用于:将提取出的目标报文数据存放到共享内存,以从共享内存读取目标报文数据并进行报文重组,得到组合后的TCP数据流,根据HTTP协议对TCP数据流进行数据解析,得到JSON格式数据,从JSON格式数据提取出预设业务的交易数据,对预设业务的交易数据重新编排为CSV格式,得到CSV格式的交易数据。
提取出的目标报文数据可存放到多个共享内存中,解析子模块还用于:通过多进程方式执行报文重组、数据解析和编排的操作。
在一个实施例中,交易数据抓取模块1501包括推送子模块,用于:将第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到第一系统的消息中间件集群。
推送子模块还用于:将第一系统的交易数据逐条或批量发送到第一系统的上链服务,由上链服务确定第一系统的交易数据的批次信息,并将第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将第一数量的交易数据和对应的批次信息作为一条记录推送到第一系统的消息中间件集群。
在一个实施例中,上链存证模块1502具体用于:对得到的批次的交易数据进行哈希处理,得到该得到的批次的交易数据的哈希值;将得到的批次的交易数据的哈希值和对应的批次信息存储到区块链网络,以由第二系统根据哈希值和对应的批次信息发出数据同步请求。
第一系统的消息中间件集群包括多个;
交易数据抓取模块1501具体用于:将第一系统的交易数据推送到第一系统的当前存活的各消息中间件集群。
图16是根据本发明另一个实施例的数据同步装置的主要模块示意图。如图16所示,本发明一个实施例的数据同步装置1600设置于第二系统端,数据同步装置1600主要包括:
上链存证数据获取模块1601,用于从区块链网络获取第一系统的交易数据的上链存证数据,上链存证数据是第一系统对抓取的交易数据进行哈希处理得到的;
待同步数据确定模块1602,用于根据第一系统的交易数据的上链存证数据,确定待同步到第二系统的第一系统的交易数据;
数据同步执行模块1603,用于通过第二系统的消息中间件集群,将待同步的第一系统的交易数据同步到第二系统。
数据同步执行模块1603具体用于:通过第二系统的消息中间件集群,将待同步的第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到第二系统中对应的存储位置。
另外,在本发明实施例中所述数据同步装置的具体实施内容,在上面所述数据同步方法中已经详细说明了,故在此重复内容不再说明。
图17示出了可以应用本发明实施例的数据同步方法或数据同步装置的示例性系统架构1700。
如图17所示,系统架构1700可以包括终端设备1701、1702、1703,网络1704和服务器1705。网络1704用以在终端设备1701、1702、1703和服务器1705之间提供通信链路的介质。网络1704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1701、1702、1703通过网络1704与服务器1705交互,以接收或发送消息等。终端设备1701、1702、1703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备1701、1702、1703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1705可以是提供各种服务的服务器,例如对用户利用终端设备1701、1702、1703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的数据同步方法一般由服务器1705执行,相应地,数据同步装置一般设置于服务器1705中。
应该理解,图17中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图18,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统1800的结构示意图。图18示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图18所示,计算机系统1800包括中央处理单元(CPU)1801,其可以根据存储在只读存储器(ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(RAM)1803中的程序而执行各种适当的动作和处理。在RAM 1803中,还存储有系统1800操作所需的各种程序和数据。CPU 1801、ROM 1802以及RAM 1803通过总线1804彼此相连。输入/输出(I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。在该计算机程序被中央处理单元(CPU)1801执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括交易数据抓取模块、上链存证模块、交易数据同步模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,交易数据抓取模块还可以被描述为“用于利用数据抓取组件抓取第一系统的交易数据,并将第一系统的交易数据推送到第一系统的消息中间件集群的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群;对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从所述区块链网络获取所述第一系统的交易数据的上链存证数据;在收到所述第二系统根据所述第一系统的交易数据的上链存证数据发出的数据同步请求后,通过所述第一系统的消息中间件集群,将所述第一系统的交易数据同步至所述第二系统。
根据本发明实施例的技术方案,能够主动且准实时地获取机构内部的交易数据,避免丢失数据,保证抓取的数据不可篡改、可追溯,为监管机构进行数据分析提供可靠的数据来源,且探针高可用,容灾和扩展能力强。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (32)
1.一种数据同步方法,其特征在于,包括:
利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群;
对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从所述区块链网络获取所述第一系统的交易数据的上链存证数据;
在收到所述第二系统根据所述第一系统的交易数据的上链存证数据发出的数据同步请求后,通过所述第一系统的消息中间件集群,将所述第一系统的交易数据同步至所述第二系统。
2.根据权利要求1所述的方法,其特征在于,所述利用数据抓取组件抓取第一系统的交易数据,包括:
利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据。
3.根据权利要求2所述的方法,其特征在于,所述利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据,包括:
从所述第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的所述流量包括所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
4.根据权利要求1所述的方法,其特征在于,所述利用数据抓取组件抓取第一系统的交易数据,包括:
利用所述第一系统的至少两个探针服务器中部署的探针程序,抓取所述第一系统的交易数据,所述至少两个探针服务器设置在所述第一系统的同一互联网数据中心中,且采用相同的探针程序配置。
5.根据权利要求1所述的方法,其特征在于,所述利用数据抓取组件抓取第一系统的交易数据,包括:
利用所述第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
6.根据权利要求5所述的方法,其特征在于,在所述探针程序部署在docker容器中的情况下,在所述容器运行所述探针程序的镜像文件,以抓取所述第一系统的交易数据,镜像文件包括基于所述docker容器的busybox制作的基础镜像。
7.根据权利要求2至6中任一项所述的方法,其特征在于,所述利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:
通过所述探针程序监控所述第一系统交易时的报文数据,并从所述报文数据中提取出指定地址和协议的目标报文数据,将所述目标报文数据解析为CSV格式的交易数据,将所述CSV格式的交易数据推送到所述第一系统的消息中间件集群。
8.根据权利要求7所述的方法,其特征在于,所述将所述目标报文数据解析为CSV格式的交易数据,包括:
将提取出的所述目标报文数据存放到共享内存,以从所述共享内存读取所述目标报文数据并进行报文重组,得到组合后的TCP数据流,根据HTTP协议对所述TCP数据流进行数据解析,得到JSON格式数据,从所述JSON格式数据提取出预设业务的交易数据,对所述预设业务的交易数据重新编排为所述CSV格式,得到所述CSV格式的交易数据。
9.根据权利要求8所述的方法,其特征在于,提取出的所述目标报文数据存放到多个共享内存中,通过多进程方式执行所述报文重组、所述数据解析和所述编排的操作。
10.根据权利要求1所述的方法,其特征在于,所述将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:
将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群。
11.根据权利要求10所述的方法,其特征在于,所述将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群,包括:
将所述第一系统的交易数据逐条或批量发送到所述第一系统的上链服务,由所述上链服务确定所述第一系统的交易数据的批次信息,并将所述第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将所述第一数量的交易数据和对应的批次信息作为一条记录推送到所述第一系统的消息中间件集群。
12.根据权利要求10所述的方法,其特征在于,对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,包括:
对所述得到的批次的交易数据进行哈希处理,得到所述得到的批次的交易数据的哈希值;
将所述得到的批次的交易数据的哈希值和对应的批次信息存储到所述区块链网络,以由所述第二系统根据所述哈希值和对应的批次信息发出所述数据同步请求。
13.根据权利要求1所述的方法,其特征在于,所述第一系统的消息中间件集群包括多个;所述将所述第一系统的交易数据推送到所述第一系统的消息中间件集群,包括:
将所述第一系统的交易数据推送到所述第一系统的当前存活的各消息中间件集群。
14.一种数据同步方法,其特征在于,包括:
从区块链网络获取第一系统的交易数据的上链存证数据,所述上链存证数据是所述第一系统对抓取的交易数据进行哈希处理得到的;
根据所述第一系统的交易数据的上链存证数据,确定待同步到第二系统的所述第一系统的交易数据;
通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统。
15.根据权利要求14所述的方法,其特征在于,所述通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统,包括:
通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到所述第二系统中对应的存储位置。
16.一种数据同步装置,其特征在于,包括:
交易数据抓取模块,用于利用数据抓取组件抓取第一系统的交易数据,并将所述第一系统的交易数据推送到所述第一系统的消息中间件集群;
上链存证模块,用于对所述第一系统的交易数据进行哈希处理,得到所述第一系统的交易数据的上链存证数据,将所述第一系统的交易数据的上链存证数据存储到区块链网络,以由第二系统从所述区块链网络获取所述第一系统的交易数据的上链存证数据;
交易数据同步模块,用于在收到所述第二系统根据所述第一系统的交易数据的上链存证数据发出的数据同步请求后,通过所述第一系统的消息中间件集群,将所述第一系统的交易数据同步至所述第二系统。
17.根据权利要求16所述的装置,其特征在于,所述交易数据抓取模块还用于:
利用部署在所述第一系统的网关应用层的探针程序,抓取所述第一系统的交易数据。
18.根据权利要求17所述的装置,其特征在于,所述交易数据抓取模块还用于:
从所述第一系统的应用的网卡将流量复制到物理机、虚拟机或容器中,复制的所述流量包括所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
19.根据权利要求16所述的装置,其特征在于,所述交易数据抓取模块还用于:
利用所述第一系统的至少两个探针服务器中部署的探针程序,抓取所述第一系统的交易数据,所述至少两个探针服务器设置在所述第一系统的同一互联网数据中心中,且采用相同的探针程序配置。
20.根据权利要求16所述的装置,其特征在于,所述交易数据抓取模块还用于:
利用所述第一系统的应用所在的物理机、虚机或容器中的探针程序,抓取所述第一系统的交易数据,所述应用用于所述第一系统执行交易以得到所述第一系统的交易数据。
21.根据权利要求20所述的装置,其特征在于,所述交易数据抓取模块还用于:在所述探针程序部署在docker容器中的情况下,在所述容器运行所述探针程序的镜像文件,以抓取所述第一系统的交易数据,镜像文件包括基于所述docker容器的busybox制作的基础镜像。
22.根据权利要求17至21中任一项所述的装置,其特征在于,所述交易数据抓取模块还用于:
通过所述探针程序监控所述第一系统交易时的报文数据,并从所述报文数据中提取出指定地址和协议的目标报文数据,将所述目标报文数据解析为CSV格式的交易数据,将所述CSV格式的交易数据推送到所述第一系统的消息中间件集群。
23.根据权利要求22所述的装置,其特征在于,所述交易数据抓取模块包括解析子模块,用于:
将提取出的所述目标报文数据存放到共享内存,以从所述共享内存读取所述目标报文数据并进行报文重组,得到组合后的TCP数据流,根据HTTP协议对所述TCP数据流进行数据解析,得到JSON格式数据,从所述JSON格式数据提取出预设业务的交易数据,对所述预设业务的交易数据重新编排为所述CSV格式,得到所述CSV格式的交易数据。
24.根据权利要求23所述的装置,其特征在于,提取出的所述目标报文数据存放到多个共享内存中,所述解析子模块还用于:通过多进程方式执行所述报文重组、所述数据解析和所述编排的操作。
25.根据权利要求16所述的装置,其特征在于,所述交易数据抓取模块包括推送子模块,用于:
将所述第一系统的交易数据划分批次,将得到的批次的交易数据和对应的批次信息推送到所述第一系统的消息中间件集群。
26.根据权利要求25所述的装置,其特征在于,所述推送子模块还用于:
将所述第一系统的交易数据逐条或批量发送到所述第一系统的上链服务,由所述上链服务确定所述第一系统的交易数据的批次信息,并将所述第一系统的交易数据和对应的批次信息保存到缓存,在缓存中的交易数据数量达到第一数量后,将所述第一数量的交易数据和对应的批次信息作为一条记录推送到所述第一系统的消息中间件集群。
27.根据权利要求25所述的装置,其特征在于,所述上链存证模块还用于:
对所述得到的批次的交易数据进行哈希处理,得到所述得到的批次的交易数据的哈希值;
将所述得到的批次的交易数据的哈希值和对应的批次信息存储到所述区块链网络,以由所述第二系统根据所述哈希值和对应的批次信息发出所述数据同步请求。
28.根据权利要求16所述的装置,其特征在于,所述第一系统的消息中间件集群包括多个;所述交易数据抓取模块还用于:
将所述第一系统的交易数据推送到所述第一系统的当前存活的各消息中间件集群。
29.一种数据同步装置,其特征在于,包括:
上链存证数据获取模块,用于从区块链网络获取第一系统的交易数据的上链存证数据,所述上链存证数据是所述第一系统对抓取的交易数据进行哈希处理得到的;
待同步数据确定模块,用于根据所述第一系统的交易数据的上链存证数据,确定待同步到第二系统的所述第一系统的交易数据;
数据同步执行模块,用于通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据同步到所述第二系统。
30.根据权利要求29所述的装置,其特征在于,所述数据同步执行模块还用于:
通过所述第二系统的消息中间件集群,将待同步的所述第一系统的交易数据分发到多个数据采集组件进行解析,并将解析得到的各类数据存储到所述第二系统中对应的存储位置。
31.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-15中任一所述的方法。
32.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-15中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310917341.4A CN117194562A (zh) | 2023-07-25 | 2023-07-25 | 数据同步方法和装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310917341.4A CN117194562A (zh) | 2023-07-25 | 2023-07-25 | 数据同步方法和装置、电子设备和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194562A true CN117194562A (zh) | 2023-12-08 |
Family
ID=88989461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310917341.4A Pending CN117194562A (zh) | 2023-07-25 | 2023-07-25 | 数据同步方法和装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194562A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057974A (zh) * | 2023-08-14 | 2023-11-14 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu大数据平台、电子设备和存储介质 |
-
2023
- 2023-07-25 CN CN202310917341.4A patent/CN117194562A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117057974A (zh) * | 2023-08-14 | 2023-11-14 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu大数据平台、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11683223B2 (en) | Edge database management of the network data plane | |
CN109327509B (zh) | 一种主/从架构的低耦合的分布式流式计算系统 | |
CN111736775B (zh) | 多源存储方法、装置、计算机系统及存储介质 | |
US9634951B1 (en) | Autonomous agent messaging | |
WO2019056913A1 (zh) | 一种容器登录方法、装置及存储介质 | |
CN112860451A (zh) | 一种基于SaaS的多租户数据处理方法和装置 | |
CN111338893A (zh) | 进程日志处理方法、装置、计算机设备以及存储介质 | |
CN112804289B (zh) | 一种资源同步方法、装置、设备及存储介质 | |
CN107347062A (zh) | 一种日志数据处理的方法、电子设备和可读存储介质 | |
CN110837423A (zh) | 一种自动导引运输车数据采集的方法和装置 | |
CN117194562A (zh) | 数据同步方法和装置、电子设备和计算机可读介质 | |
CN113778615A (zh) | 一种快速稳定的网络靶场虚拟机构建系统 | |
CN113486095A (zh) | 一种民航空管跨网安全数据交换管理平台 | |
CN110019539A (zh) | 一种数据仓库的数据同步的方法和装置 | |
CN112838935A (zh) | 一种电子数据交换方法和系统 | |
Zamani et al. | Submarine: A subscription‐based data streaming framework for integrating large facilities and advanced cyberinfrastructure | |
US20230283695A1 (en) | Communication Protocol for Knative Eventing's Kafka components | |
Zhang et al. | Efficient online surveillance video processing based on spark framework | |
CN113472638B (zh) | 边缘网关控制方法及系统、装置、电子设备、存储介质 | |
CN114760360B (zh) | 请求响应方法、装置、电子设备及计算机可读存储介质 | |
CN115378937A (zh) | 任务的分布式并发方法、装置、设备和可读存储介质 | |
CN117642724A (zh) | 使用无服务器计算系统的流式分析 | |
CN114969199A (zh) | 遥感数据的处理方法、装置、系统以及存储介质 | |
CN111858260A (zh) | 信息显示方法、装置、设备及介质 | |
CN110019445B (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 |