APP下载

JTangSync分布式异构数据同步系统的设计与实现

2016-02-23张渊源张琴燕姚祥龙

计算机技术与发展 2016年12期
关键词:数据源异构处理器

张渊源,张琴燕,李 峰,姚祥龙

(1.浙江中医药大学 信息技术学院,浙江 杭州 310053;2.浙江大学 计算中心,浙江 杭州 310058;3.浙江大学 计算机科学与技术学院,浙江 杭州 315100;4.浙江省科技信息研究院,浙江 杭州 310006)

JTangSync分布式异构数据同步系统的设计与实现

张渊源1,张琴燕2,3,李 峰4,姚祥龙3

(1.浙江中医药大学 信息技术学院,浙江 杭州 310053;2.浙江大学 计算中心,浙江 杭州 310058;3.浙江大学 计算机科学与技术学院,浙江 杭州 315100;4.浙江省科技信息研究院,浙江 杭州 310006)

集团企业数据往往分布在各异构环境中,但业务需求又要求企业进行数据交换和同步。由于应用平台和数据模式各不相同,传统的数据同步方式缺乏统一的同步框架。针对这一问题,设计并实现了一种分布式异构数据同步系统JTangSync。该系统采用分布式架构,每个节点由数据源模块、数据传输模块和处理器模块等组成。每个模块都设计为可替换插件形式以便于二次扩展,各个节点依赖Zookeeper组成集群,具有集中管理、故障转移以及断点续传等多项功能。通过对比实验分析,证明该方法在异构数据同步方面具有较好的效果。

分布式异构数据集成;数据同步方式;JTangSync;数据传输;Zookeeper集群

0 引 言

处于起步期的企业,由于业务数量有限,数据很可能进行集中式存储。但随着业务的不断扩展,数据模式将演变成为分布式数据[1]存储于不同地区,并且容易导致数据的不一致性问题[2]。因此,需要研究一套同步系统将不同地区的数据进行有效整合,保证所有地区数据的一致性。

分布在不同地域的数据传输依赖于网络,要求整个数据同步系统必须是分布式的,并且由于业务的复杂性、地区之间业务的差异性以及人为原因等,每个地区的数据很有可能是存储在异构系统中[3]。如A地区数据存储在MySQL数据库中,而B地区数据存储在Oracle数据库中,这两种方式虽有相似之处,但是许多方面是不兼容的,在实现数据同步时需要屏蔽这种差异性。然而,即使数据存储系统是一致的,也有可能出现数据库名称、存储格式等差异,使得数据同步系统设计变得非常复杂[4]。

数据同步系统应具有自动化、实时性、异构性、高可用性、高可靠性。自动化是指整个系统在运行时,基本不需要用户干预,能够自动完成数据的同步。实时性是指处理数据的及时性,从数据的产生到处理耗费的时间应该在业务可承受范围之内,分钟甚至毫秒。异构性是指同步系统不仅支持多种多样的数据源,而且还应该支持数据源的抽象和扩展。数据源包括文件系统、Web网络、FTP网络、数据库、ERP系统等。高可用性是指系统应该能够7*24运行,在可用性上至少要达到4个9的目标。因为数据同步系统一般承担企业级的核心数据和业务流程,对可用性上有很高的要求。高可靠性是指在运行时可能会遇到各种突发情形(比如数据库连接断开、网络断开、IP地址改变等环境因素)导致同步出错或者不能继续进行,数据同步系统应该能够检测同步出错,让系统在环境恢复时重新进行同步[5-6]。

工业界对同步数据问题的解决方案大致有两种,第一种是专门开发一种系统用来满足自己的业务逻辑,可以支持自身要求的数据格式,最多支持同一种数据格式系统的扩展。这一类系统以数据库增量实时同步系统为代表。第二种是基于流处理框架开发,在大数据时代传统的计算模式己经不能适应现在的大数据量和数据多样性,多种计算模式使得流计算又重新焕发了生机,并且随着云计算的普及,数据的流计算增加了许多新的特征,比如高扩展性、分布式支持等等[7]。由于数据同步实际上是流处理的一种,用户在流处理之上开发数据同步需要自己解决断点续传、增量数据获取、分布式等难题,所以这种方法虽然扩展性更高,但是开发成本也更高[7-10]。

基于此,文中设计了一种异构数据同步系统JTangSync。与传统方法相比,用户基于JTangSync提供的接口可以定义自己的同步逻辑,然后快速开发期望数据格式的系统,并且不需要考虑断点续传、故障恢复等问题[11],此外监控管理平台让用户省去开发自己的监控管理平台。JTangSync专门解决数据同步问题,尤其是数据库同步的问题。设计了大量的异构数据源和处理程序,用户开发一般的数据同步只需按照指导在监控管理平台进行配置然后启动即可。

1 相关技术

数据同步系统设计和实现的相关技术,包括Zookeeper,Protocol Buffer,Snappy,Netty,Jetty,Fast JSON等等。

1.1 Zookeeper

JTangSync使用Zookeeper来管理配置信息,包括所有的数据源配置、数据处理器配置、监控实例配置、节点信息和Manager的选举[12]。

ZooKeeper源于Hadoop的一个子项目,是一个应用于大型分布式系统的协调系统,功能包括分布式同步、配置维护、名字服务等。ZooKeeper封装复杂易出错的服务,提供可靠易用的接口和高效稳定的系统。一个分布式的环境需要Master实例来存储一些配置信息,使用Zookeeper来维护信息和配置信息等,确保写入文件的一致性。

1.2 Netty

JTangSync使Netty作为其核心组件,实现分布式的网络程序。Netty是一个著名的开源NIO框架,主要功能是提供异步的、事件驱动的网络应用程序接口,使用Netty能够快速开发高性能、高可靠性的网络服务器和客户端程序[13]。

使用Netty可以确保网络应用的开发过程更加简单和快速,例如实现了HTTP协议的客户和服务端应用。Netty大大简化和流线化了网络应用的编程开发过程,例如TCP和UDP的Socket服务开发。在设计上Netty借鉴各协议的经验,包括FTP、SMTP、HTTP、二进制、文本协议等。

1.3 Protocol Buffer

JTangSync设计了网络数据的交换过程,如数据传输、节点间通信、性能监控等等。由于Protocol Buffer在Netty中存在相关的编码器和解码器,使用Protocol Buffer作为JTangSync中的数据标准的交换格式[14]。

Protocol Buffer是Google的一种数据交换格式,它独立于语言和平台,提供了三种实现语言:Java、C++和Python。每一种实现过程都包含了相应语言的编译器以及库文件。由于它是二进制的格式,比使用XML进行数据传输更快,因此可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以广泛运用于诸如网络传输、配置文件、数据存储等诸多领域之中。

1.4 Snappy

为提高效率,JTangSync中网络传输的数据需要压缩,但是传统的压缩算法耗时较长。该系统使用Snappy算法作为网络传输的标准压缩算法。Snappy是Zippy的开源实现。它作为一个压缩库被Google用于许多内部项目中,包括MapReduce,RPC和BigTable。Snappy优化了64位x86处理器,经测试,Snappy在单个Intel Core i7处理器内核上压缩速度为每秒250 MB,解压速率为每秒500 MB。

1.5 Fast JSON

JTangSync使用JSON描述数据交换格式。JSON是基于JavaScript的一个子集,采用完全独立于语言的文本格式,使得JSON成为理想的数据交换语言,既易于人类阅读和编写,又易于机器解析和生成。

Fast JSON是阿里巴巴公司开发的一个JSON开发库[15]。与传统的JSON解析相比,Fast JSON的解析速度更快,并且Fast JSON的API设计比较合理,包含多种Java对象与JSON转化的方法。其中,最大的优点在于可以与Java Bean进行相互转化。在JTangSync中,Fast JSON主要用于Web程序的数据交互、集群间节点的性能数据交换等方面。

2 数据同步系统设计

同步系统是将数据从一个系统、软件或者文件等存储中提取出来并且通过网络连接、邮件等方式传输到另一个不同或者相同的系统中,最终将数据导入到目标系统的存储中的自动化系统。

如图1所示,节点中运行的功能单位是同步实例,代表一个从数据源到数据处理器的完整逻辑。一个同步实例包含一个数据源、一个由0到多个数据处理器组成的数据源处理器链、一个由0到多个数据处理器组成的本地处理器链。

本节将分别从数据源模块、网络传输模块、数据处理模块和集群模块来介绍JTangSync异构数据同步系统。

图1 系统拓扑结构

2.1 数据源模块

数据源是指JTangSync获取数据源的一种代理器。由于一般的同步系统中数据源与处理逻辑并不在同一个域中,安全性要求数据源从外界进行访问时必须通过代理来获取数据。此外,数据来源多种多样,如MySQL数据源、SQL Server数据源、Oracle数据源、文件数据源等。数据源的主要职责就是获取数据并且通过网络转发出去。数据源模块就是管理数据的功能模块。

2.2 数据源工作流程

数据源的主要职责就是获取数据并且转发到数据传输模块。数据源管理器管理所有的数据源,数据源管理器接收到初始化数据,然后查找是否存在此类型的数据源。如果找到,则初始化数据源,数据源进入工作状态。在此过程中,如果发生任何异常或错误,数据源退出。最后重新初始化数据源是同步实例的职责,而不是数据源的职责。

2.3 网络传输模块

网络传输模块的主要职责是将数据尽量及时转发出去。实现难点包括延迟低、数据速率高。延迟低是指数据到达网络传输模块之后,需要尽快地传输出去,以及时将数据提交到对端。

数据速率高是指网络传输的速度要尽量快。当数据包比较小需要合并时,这两者是冲突的,因为由于IO接口只能支持有限的调用次数(现今大约为数百次/s),所以必须在每次调用IO接口时传输尽量多的数据。由于数据包较小,那么每秒发送的数据量会很小。因此,必须进行缓存。

2.4 数据传输流程

数据传输模块处理数据源模块产生的数据。由于IO设备的限制,每秒的IO次数是一定的,数据要先进入缓存。如果数据量达到或超过限制,或者超时(超时限制设置为200 ms),将数据序列化方便网络传输[16]。序列化方法要求序列化和反序列化的速度要快,不能影响网络传输的效率。文中以Protocol Buffer作为序列化技术。

接着分析当前的数据是否需要压缩,判断策略主要通过预测算法,通过过去的数据预测当前时间点的情况,如果过去1小时之内使用压缩传输数据的平均速度为mkB/s,不使用压缩传输数据的平均速度为MkB/s,那么有以下策略:

上式的意义为,当m>M,即压缩的数据传输速度大于不压缩,则将当前的压缩模式切换为非压缩模式。由于Snappy算法在压缩和解压缩方面速度远胜于GZIP库,所以JTangSync在网络传输模块中采用Snappy算法。

2.5 数据处理模块

数据模块是管理和配置、执行数据处理器的模块。用户的数据处理需求比较复杂,单一的数据处理器不能满足用户的全部需求,采用责任链模式来定义用户要求的数据处理逻辑。此外,如果JTangSync中提供的数据处理器不满足用户的特殊需求,用户可以通过JTangSync数据处理开发接口开发自己的数据处理器。

2.6 JTangSync数据处理流程

数据处理模块是处理数据的主要模块,JTangSync中处理数据的一个功能单元模块,又称Handler。每一种数据处理逻辑在JTangSync中都对应一个数据处理器,多个数据处理器可以配置为一个数据处理器链,数据处理器链是单向并且不可循环的。其中数据处理器是数据处理模块的组成单元。当配置一个同步实例时,用户需要配置若干数据处理器,这些数据处理器按照配置的先后顺序组成一个责任链来处理这一个同步实例的数据。

数据处理器在使用之前需要初始化,这一过程可能需要配置信息,然后数据处理器开始处理数据。初始化所需配置信息统一为Key-Value格式,配置信息数据类型为String。

数据源处理器链由0到多个数据处理器组成,数据源会将数据提交给处理器链然后进行网络传输。本地处理器链由0到多个数据处理器组成,可以从网络接收数据并且进行处理。为与数据源处理器链相区别,称为本地处理器链。一个同步实例中数据处理器需要在两个阶段运行,第一个阶段在网络传输之前进行,主要进行数据过滤、合并、统计等,称为数据源处理器。第二个阶段是在网络传输之后进行,主要责任是处理数据,称为本地处理器。两个阶段的处理器是共用的,接口设计完全相同,体现了JTangSync的高度灵活性。

2.7 JTangSync集群模块

集群模块是管理和控制JTangSync集群的模块,主要功能有节点管理、负载均衡、故障转移和状态监控、Manager选举、集群间通信、本地同步实例管理等。在管理控制平台,用户可以实现JTangSync集群管理、数据源管理、性能监控、处理器管理等所有目标。

2.8 JTangSync集群流程

JTangSync设计为集群模式,多个JTangSync节点通过JTangSync集群模块可以组成一个JTangSync集群。节点指一个JTangSync进程,是指JTangSync集群中的一个资源单位,一个JTangSync集群中可能包含1到多个JTangSync节点,同步实例可以运行在其中任何一个节点上。Node的定义与节点定义相同。JTangSync集群模块包含JTangSync集群运行的必需功能。

文中使用Zookeeper实现JTangSync集群模块,提供一致的分布式事件回调接口,使用方便。树形目录结构与当前系统保持一致,并且树形结构目录的每个节点都提供服务,这满足了分布式系统中的配置信息保存的需求[17-18]。

3 JTangSync节点实现

3.1 数据源的实现

数据源是JTangSync中的核心组件,数据源的质量和数量决定了JTangSync是否强大。数据库增量数据源是JTangSync核心中的核心,是指当前提取的数据都是数据库在一段时间之内的增量数据,与数据库数据源是不一样的概念。数据库数据源只是简单的连接数据库,然后获取其中的全量数据,实现的难度较数据库增量数据源低。数据库增量数据源的实现难度大,对效率、延迟的要求都会比其他的数据源高。

MySQL数据源实现是基于MySQL本身的Replication协议,Replication是专门用于MySQL之间复制的协议。Replication协议中需要同步数据的MySQL称为Slave,提供增量数据的称为Master,数据传输基于Slave和Master之间的TCP连接,Master中增量数据存储的位置是binary log(二进制日志),存储格式有三种:statement,row,mixed。在JTangSync中选择Row格式作为MySQL增量数据源的二进制日志格式。

Sqlserver的增量数据源使用Sqlserver的变更数据捕获功能(又称为Change Data Capture,CDC),Sqlserver的变更数据捕获功能有一些限制。首先CDC有版本限制,只有SQL server2008以及以上版本才支持。其次CDC功能需要为每个表开启一个临时表。尽管存在这些限制,比起触发器方法还是有很多优势。

3.2 数据传输的实现

数据传输基于Netty实现。Netty不仅是优秀的NIO和多线程框架,而且提供了许多协议库,其中包括snappy和protocol buffer的实现。数据传输代码如下:

ChannelPipeline pipeline=ch.pipeline();

ch.pipeline().addLast(new MySnappyDecoder());

ch.pipeline().addLast(new MySnappyEncoder());

ch.pipeline().addLast(new ProtobufVarint32FrameDecoder());

ch.pipeline().addLast(new ProtobufDecoder(SyncEvent.Event.getDefaultInstance()));

ch.pipeline().addLast(new ProtobufVarint32LengthField Prerpender());

ch.pipeline().addLast(new ProtobufEncoder());

pipeline.addLast(“handler”, new SnappyProtobufServerHandler(ch));

自适应压缩算法的主要思想是在Netty中实现一个专门用于统计网络传输字节数的的handler,并且向上层提供接口,上层逻辑可以使用这个接口实现自适应压缩算法。例如,此handler统计到己经发送了n1字节,经过ts之后变成n2字节,ts内的发送速度为(n2-n1)/t/1 024,单位为kB/s,相比之前的速度即可决定是否需要进行压缩算法。

3.3 数据处理器的实现

过滤处理器是指根据一定规则过滤数据的处理器,这里的规则主要有相等、不等、大于、小于、大于等于、小于等于等规则。过滤处理器使用的范围是在数据库同步领域,比如当传输数据库数据时,用户可能需要过滤掉多余数据。

数据库处理器是将数据导入数据库的处理器。由于不同的数据库的SQL标准是不一样的,所以每个数据库对应一个数据库处理器。数据库处理器需要考虑:首先,如果是关系型数据库,那么要将数据的提交格式设置为false并且执行一定数量的SQL之后提交;如果是非关系型数据库,那么要尽量减少IO的次数。其次,数据传输时要尽量打包,减少网络IO的次数。最后,如果通过JDBC执行SQL,需要使用prepared statement,因为数据只有insert、delete、update三种,可以将三个prepared statement缓存起来,等待重复使用。实验证明,性能至少提高了10%~20%。

4 JTangSync集群实现

JTangSync集群中存在多个节点,需要一个协调者担任Manager的角色。这个Manager节点的主要任务是启动Web监控管理平台和协调集群运行。

4.1 Manager选举算法

JTangSync中选举算法的流程如图2所示。

图2 JTangSync中选举算法的流程图

1)JTangSync在zookeeper目录中的//nodes/目录下新建一个类型为EPHEMERAL_SEQUENTIAL的node,它是zookeeper中的顺序内存node。SEQUENTIAL保证了创建此node的目录下所有的SEQUENTIAL类型的node名称都是顺序的,名称由zookeeper决定;EPHEMERAL类型node保证了此节点只存在于连接有效的时间段内,如果创建此node的连接失效,那么zookeeper将自动把此node删除。EPHEMERAL_SEQUENTIAL类型就是以上两种类型的集合。

2)JTangSync在/nodes目录下新建一个Watcher。Watcher是zookeeper中的一种分布式事件通知器,如果Watcher所在的node的数据发生变化(包括删除、修改)或者node下的节点发生变化(包括删除、新建),Watcher就会得到通知,并且执行Watcher中的回调方法。

3)如果当前Watcher被调用,那么分两种情况:

如果nodes下节点数量达到配置中JTangSync集群中节点的数量并且当前还未启动完成,那么将获取当前nodes下所有的节点并且排序,名称最小的节点将成为manager节点。Manager节点将会完成以下操作:

(1)启动当前节点的web监控管理控制平台。

(2)分配所有标志为“自动启动”的同步实例到JTangSync节点上运行。

如果nodes下节点数量没有达到JTangSync集群中节点的数量,并且当前还未启动完成,那么就返回。

如果当前JTangSync集群标志为已启动,并且当前nodes下的node数量有变化,那么更新manager,新的manager需要完成以下操作:

(1)启动当前节点的web监控管理控制平台。

(2)启动故障转移模块。

JTangSync的选举非常灵活,利用zookeeper不仅能够快速准确地选举出manager节点,并且利用zookeeper实现了在过去manager节点失效的情况下选举新的manager,实现了分布式系统中的高可靠性。

4.2 节点热部署

利用Zookeeper,还可以实现在运行时新增节点。新增节点必须在整个JTangSync集群己经启动的情况下进行(如图3所示)。

图3 增节点的流程

从图3中看到,节点的热部署[19-20]大致分为2步:

(1)启动,并且连接Zookeeper,与选举算法中的描述相同,在nodes下新建watcher,在nodes下新建EPHEMERAL SEQUENTIAL类型node。

(2)此时,其他watcher都会收到通知,并且更新本地所有的node信息。

4.3 节点热移除

借助Zookeeper的分布式通知功能,可以实现JTangSync节点的热移除功能。JTangSync集群中节点的移除流程如图4所示。

由于节点在Zookeeper中建立的是EPHEMERAL类型的节点,停止之后,zookeeper中建立的节点消失,/nodes/节点下node数量变化,其他的JTangSync节点都会收到通知,最后更新manager和本地的node信息。

5 系统性能测试

5.1 操作类型的支持

测试JTangSync在MySQL数据库insert,update,delete语句。测试数据共426 570条,包括146 570条插入数据,140 000条删除数据,以及140 000条更新数据。测试环境为内网环境。测试见表1。

图4 节点热移除的流程

测试类型花费时间/s性能/(条/s)insert207328delete20.36896update226363

5.2 模块性能测试

测试JTangSync的数据源的数据捕获性能、数据发送模块性能、数据处理器性能和内存占用。测试配置从Master到Slave,同步426 570条数据。Slave自身性能测试先使用独立的20万条插入数据,之后与整个系统的性能比较,得出是否己经达到了整个系统的瓶颈。

性能测试结果如表2所示。

表2 性能测试结果

数据传输模块的瓶颈在16 000条/s左右,与数据源性能相差如此大的原因是因为需要将数据源模块获取的数据转化为JTangSync的统一数据格式,这耗费了很多时间。另一方面是JTangSync己经达到了整个系统的性能瓶颈,JTangSync的性能最高达到6 874,Salve的性能瓶颈在7 104,除去JTangSync在数据传输、压缩、转换的消耗,JTangSync在资源的利用和性能方面做的比较好。

6 结束语

JTangSync是异构数据同步框架,主要功能是为用户提供一个高可用、高性能、高可扩展的数据同步开发平台。用户使用这个框架无需关心数据同步中常见的数据格式、数据传输、断点续传、故障恢复等问题,只需要考虑基本的业务逻辑和数据源、数据处理器的开发即可。JTangSync内置了大量的数据源和数据处理器,免去用户重复开发一些常用数据源和数据处理器的烦恼。从测试结果上看,JTangSync是一个优秀的异构数据同步框架。

未来,由于数据同步的需求多种多样,JTangSync将整合用户的各种需求,开发新的数据源和数据处理器,并加入新的数据同步逻辑。

[1] Leslie B,Ron B,Charles D L T,et al.Formulary and database synchronization[J].American Journal of Health-System Pharmacy,2011,68(3):204-206.

[2] 潘群华,吴秋云,陈宏盛.分布式数据库系统中数据一致性维护方法[J].计算机工程,2002,28(9):255-257.

[3] 戴婉荣.基于分布式数据库的数据同步机制的研究与应用[D].武汉:武汉理工大学,2010.

[4] Liao Guoqiong.Data synchronization and resynchronization for heterogeneous databases replication in middleware-based architecture[J].Journal of Networks,2012,7(1):210-217.

[5] 魏祥麟,陈 鸣,范建华,等.数据中心网络的体系结构[J].软件学报,2013,24(2):295-316.

[6] 章 筠.计算机网络可靠性分析与设计[D].杭州:浙江大学,2013.

[7] 蔡 亮,刘 腾.基于写操作集的数据库同步复制模型[J].计算机工程,2011,37(13):61-62.

[8] 秦 森,杨 艳.基于Oracle日志分析的数据还原操作的设计及实现[J].电脑知识与技术:学术交流,2007,1(3):626-628.

[9] 纪 彬,贺 立,白广利,等.基于JMS的数据交换技术研究与实现[J].自动化技术与应用,2011,30(2):70-73.

[10] 赵 莉,杜思锋.数据交换平台中异构数据转换技术的研究[J].电子设计工程,2011,19(5):91-93.

[11] Hossain M S,Masud M,Muhammad G,et al.Automated and user involved data synchronization in collaborative e-health environments[J].Computers in Human Behavior,2014,30(1):485-490.

[12] 孙大为,张广艳,郑纬民.大数据流式计算:关键技术及系统实例[J].软件学报,2014,25(4):839-862.

[13] 金志国,李 炜.基于Netty的HTTP客户端的设计与实现[J].电信工程技术与标准化,2014,27(1):84-88.

[14] 窦进业.基于Protocol Buffers的企业即时通讯应用的研究与实现[D].青岛:中国海洋大学,2014.

[15] 王 凯,赵庚申,刘国良.基于Android的电能管理系统的研究[J].南开大学学报:自然科学版,2015,48(2):69-74.

[16] 陈增强,郭嘉琳,刘忠信,等.具有断点续传功能的文件传输系统的设计与关键技术[J].计算机工程,2002,28(12):14-16.

[17] 王 宾.Hadoop集群的部署与管理系统的设计与实现[D].南京:南京大学,2013.

[18] 张 璇.面向移动计算的分布式文件共享服务平台软件研究[D].杭州:浙江大学,2010.

[19] 李海骋,曹 春,吕 军,等.支持依赖修复的热部署技术[J].计算机科学,2014,41(11):141-145.

[20] 金 海,官象山,吴 松,等.分布式存储系统中文件传输优化的设计与实现[J].华中科技大学学报:自然科学版,2005,33(1):4-6.

Design and Implementation of Distributed Heterogeneous Data Synchronization Platform JTangSync

ZHANG Yuan-yuan1,ZHANG Qin-yan2,3,LI Feng4,YAO Xiang-long3

(1.College of Information Technology,Zhejiang Chinese Medical University,Hangzhou 310053,China;2.Computer Center,Zhejiang University,Hangzhou 310058,China;3.College of Computer Science,Zhejiang University,Hangzhou 315100,China;4.Institute of Scientific and Technical Information of Zhejiang Province,Hangzhou 310006,China)

The group enterprise data is usually stored in different heterogeneous environment,but the business requirement needs data exchange and synchronization for enterprise.Due to different application platform and data model,the traditional data synchronization method lacks of an unified framework for data synchronization.To this point,a distributed heterogeneous system JTangSync is designed and implemented for data synchronization.In this distributed architecture,each node contains data source module,the data transmission module and processor module.Each module is a replaceable plug-in which is convenient for secondary extension,and each node uses Zookeeper cluster which has capacity of centralized management,failure shifting and breakpoint continuing.It is proved in experiment that the method has good effect in heterogeneous data synchronization.

distributed heterogeneous data integration;data synchronization;JTangSync;data transmission;Zookeeper clusters

2015-10-16

2016-02-24

时间:2016-11-21

浙江省省级公益性技术应用研究计划(2014C33081);浙江省科技计划项目(2013F20007)

张渊源(1980-),女,讲师,硕士,研究方向为信息系统和医疗软件中间件。

http://www.cnki.net/kcms/detail/61.1450.TP.20161121.1633.012.html

TP311.5

A

1673-629X(2016)12-0169-07

10.3969/j.issn.1673-629X.2016.12.037

猜你喜欢

数据源异构处理器
试论同课异构之“同”与“异”
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
基于真值发现的冲突数据源质量评价算法
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
分布式异构数据源标准化查询设计与实现