- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MQ消息异构数据同步概要设计说明书
异构数据同步系统概要设计说明书目录 2
版本记录 3
1.前言 4
1.1编写目的 4
1.2项目背景 4
1.3术语定义及编写说明 4
2.概述 4
3.总体架构设计 5
系统设计目标 5
系统软件构成 5
系统总体架构 5
系统结构图 7
4.功能设计 7
启动模块 7
定时模块 8
数据捕获模块 9
消息服务模块 10
数据同步模块 12
日志管理系统 13
日志生成模块 14
日志显示模块 14
运行环境 15
配置文件结构设计 15
数据捕获端配置文件 15
数据同步端配置文件 16
日志管理配置文件 17
数据库结构设计 19
5.系统辅助设计 20
出错信息 20
可靠性设计 20
可移植性设计 20
版本记录
序 号 版本号 生成时间 主要修改记录 作 者 1.前言
1.1编写目的
此规格说明书的读者对象范围包括:本项目的所有开发人员、测试人员项目经理、部门经理等。
1.2项目背景
目前公司现有主要业务系统有OA系统、人事系统、产销一体、供应链系统,仓储系统,二级系统等各个业务系统之间没有统一数据交互架构;各个业务系统之间基础数据交互主要使用数据库表连接方式进行,增加数据库负担业务系统使用多个业务系统基础数据就需要建立多个数据源,增加业务系统开发难度和维护难度数据同步周期长,一些大型业务系统基础数据同步只能放置夜里系统负载小的时间段执行触发器,异构数据同步,MQ消息队列 等多种关系型数据库,使用rabbitMQ消息中间件作为消息转发。
该系统的基本工作流程是:源数据库发生数据变化(插入、修改、删除)时,则通过3.总体架构设计
系统设计目标
数据同步系统需要实现以下的几个目标:
系统能够满足异构数据库表数据同步
系统总体架构
系统结构图
4.功能设计
启动模块
启动模块是启动数据同步的入口,负责加载数据数据同步所需要使用的依赖jar包和配置文件,启动数据同步服务,本系统使用java service Wrapper 作为数据同步的启动模块,将数据同步服务编译成jar,以及依赖的jar放入Wrapper的lib中,配置启动脚本,完成数据同步启动,也可以使用Wrapper将数据同步注册成系统服务运行。通过该模块可以实现指定时间运行数据捕捉模块,也可以配置运行间隔时间运行数据捕捉模块,定时模块使用spring task进行配置完成定时触发,定时服务业务处理由ducer.ScheduledProducer完成,在spring配置定时器时,只需要将业务处理类以及触发调用方法配置到定时器中即可完成定时模块配置,将来也可以自定义业务处理类或扩展上述类型完成更多的业务类型处理。
数据捕获模块
捕捉模块是使用数据库触发器配合基于Hibernate持久层开发的扫瞄器完成源数据库指定表的数据变化量捕捉,并将捕捉到数据变化根据spring中配置的源数据库与目标数据库对应关系转化成通知消息,通过事前配置的路由发送至rabbitMQ指定的消息队列中。通过定时模块定时抓取源数据库表的变化数据并发送至消息队列中。TRIGGER_DATA”格式,
每一个同步表需要建立(新增、修改、删除)的触发器,MySQL需要针对新增、修改、删除三种操作建立三个触发器。触发器需要将源表中发生的三种操作、变动数据、变动时间等记录到与源表对应的数据变动表中。
数据变动扫描器扫描数据变动表,如果数据变动表有数据则读取变动数据,将读取到的数据标记为已读并按照JSON格式组装成MQ消息,将消息发送至消息服务器,发送成功后将已标记为已读的变动数据删除,如果发送失败则将已读标记还原,以便下个周期扫描重新处理。
流程图:
数据捕获时序图:
实现类图:
消息服务模块
本消息服务使用RabbitMQ作为消息中间件,并采用集群部署,队列持久化、消息持久化、队列镜像等技术保证消息服务的高可用性,保证消息可靠投递。消息发送:RabbitMQ支持字节数组、对象、文本消息,本系统中使用文本消息作为载体。消息发送至RabbitMQ队列中,由RabbitMQ将消息进行持久化保存。消息接收:消息接收由消息监听RabbitMQ队列,队列中有通知消息则将消息接收下来并调用数据数据同步进行消息解析、执行,完成数据同步操作并确认消息,RabbitMQ接收确认通知后删除队列中消息。ROUTING KEY将消息按照exchange中配置的路由分发至哪些queue中,在本系统中定义,一类消息可以使用同一exchange进行分发,一类消息可以存放在同一queue中。
消息队列使用及命名规范Exchange 命名规范Exchange 分为两种,一种是分发到本地的Exchange 或者Queue使用,一种是上传至中心集群使用。分发到本地的Exchang
文档评论(0)