基于同步的数据共享实现方案概论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于同步的数据共享实现方案概论
摘要随着企业IT系统架构进入“互联网+”时代,企业应用软件也越来越多地采用分布式数据库进行数据存储。企业数据的共享是IT系统中重要的一个环节,如何实现数据分布式存储架构的数据共享就成为一个重要的课题了,特别是大批量的数据共享就显得尤为重要,本文就数据分布式存储后基于数据同步方案的数据共享技术进行方案设计。
关键词分布式数据库;数据共享;数据分发;分布式缓存
前言
在分布式系统架构中,数据分布式存储,提升了数据库的水平扩展能力,但是受限分布式数据库的特性,分布式数据库数据分散存储,缺乏传统Oracle数据库的DBLink链路数据共享机制、也难以像传统的集中数据一样进行复杂的关联,给数据共享带来了不少的困难。
1 需求及思路
分布式系统架构中,从web、服务到数据存储按照分布式系统架构设计方法,各层实现分布式能力。其中,数据分布式存储是整个架构的基础。数据分布式存储:按照高内聚的原则,对数据按照时间、功能、ID等维度进行垂直和水平切分,分片存储。
在分布式数据存储中,数据分散存储,为支持业务实现,需要考虑数据的快速发布,主要的数据分发场景:①配置类数据同步给周边系统,②全局配置类数据更新發布到分布式缓存。
借鉴互联网架构经验,数据的共享主要有两种方式:一是数据服务化,二是数据同步冗余方式,对于大批量的数据共享通常为提升应用性能,部分全局的数据在分布式数据节点中都保存,但是一旦数据库的数据发生变化,通知每个分布的服务更新内存数据,修改后需要同步给其他所有的数据库节点。
2 总体方案
数据同步主要包括获取变化数据和数据发布两个环节:
(1)获取变化数据,需要能够通过数据变化事件等方式获取变化的数据,常用方案:
①通过时间戳+版本号识别;②通过应用同步写入数据变化事件记录;③通过数据库日志生成数据变更事件。
(2)数据发布,将识别的数据同步到目标数据库或缓存,要求数据的完整性要求高,同步速度快。
3 详细实现方案
3.1 获取变化数据
(1)触发器方式
通过建立缓存更新事件表,使用触发器,记录变更处理事件信息;使用应用程序,轮询缓存更新事件表信息,将变更信息修改到具体的缓存中;
①事件生成机制。对数据表设置触发器,当数据发生变化时候,将变更事件记录到更新事件表。②更新机制。开发一个工具,建立一套配置表(该配置表的信息通过单独功能直接更新):支持设置更新的缓存类型、存储IP、位置等信息,轮询缓存更新事件表,根据配置信息进行同步目标数据库或缓存。
优点:对于事件生成无须区分应用界面及数据脚本,统一生成。
缺点:需要数据库加触发器,数据库很多,维护管理复杂。
(2)消息队列方式
通过应用程序生成数据变更事件放入消息队列,通过消息队列通知相关应用更新缓存。
①事件生成机制。开发工具,提供配置表,配置哪些表变更需要触发信息。应用程序变更数据时候生成事件机制,放入消息队列。数据库脚本变更配置:建立变更事件表,数据脚本根据规则,生成变更事件数据,由程序再根据变更内容及上述的配置信息,生成事件到消息队列表数据。②更新机制。开发一个工具,建立一套配置表(该配置表的信息通过单独功能直接更新):支持设置更新的缓存类型、存储IP、位置等信息,根据从消息队列接收到的事件,根据配置信息进行同步目标数据库或缓存。
优点:相对稳定点;
缺点:不在数据库统一实现,数据修改、割接需要关注,更新事件表数据的插入。
(3)时间戳方式
需要同步的数据库表增加时间戳字段,数据更新时,同时更新时间戳,通过比较缓存中的数据与数据库记录的时间戳判断是否更新数据。
①事件生成机制。数据库中需要缓存的表,增加时间戳字段,更新数据时,同时更新时间戳。②更新机制。定时跟进数据库中数据的时间戳,将数据发布到目标数据库或缓存。
优点:①设计简单,实现快捷;②不依赖第三方组件,触发器,由应用直接实现。
缺点:需要定时轮询缓存中的全部数据,数据库开销大。
3.2 数据发布方案
识别出待同步数据后,通过JGroups机制将数据同步到周边系统或分布式缓存应用。JGroups是一个可靠的群组通讯Java工具包,组成员可以分布在局域网或广域网中,具有非常灵活的协议栈配置,可轻易配置使用的网络协议。
数据分发模块采用线程池的概念,每个JGroups成员配置线程池,每个线程负责更新一个目标对象(如:数据库、分布式缓存)。通过这种方式降低JGroups 集群之间的成员数量,加快通信速度。
数据发布网络模式:
3.3 配套管理及监控功能
为了实现稳定可靠的数据共享,需要建立完善的配套管理工具,主要包括:
(1)实现在线配置同步参数:在数据同步过程中,用户可以随时增加或减少需要同步的数据源及同步参数;
(2)建立同步性能查询功能:数据同步提供同步延迟、同步性能(记录数、吞吐量)趋势图,用户可以方便查看同步通道的性能趋势。
(3)建立完善监控功能:数据同步提供同步作业状态、同步延迟的报警监控功能,用户可以根据业务敏感度,自定义同步延迟报警阈值。
4 结束语
本文初步设想分布式数据库系统数据发布技术方案,目前该实现方案已经在项目中初步应用,需在后续的实施过程中进一步的提升完善。