数据同步系统设计
船岸数据同步原理设计

船岸数据同步原理设计作者:薛磊来源:《硅谷》2009年第10期中图分类号:U6文献标识码:A文章编号:1671-7597(2009)0520087-02当今世界航运市场的竞争日趋激烈,管理就成了在竞争中立于不败之地的关键所在。
为了更加有效地保证公司质量与安全管理体系有效运行,不断提高公司安全管理人员对船舶的安全监管水平,保证船舶及人员安全,防止污染,减少和避免财产损失,维护公司声誉,因此,需要利用船舶信息同步技术,使船舶安全管理人员能及时地监管在航船舶及船员信息,加强公司管理机关对船舶的控制力度和突发事件的应对能力,确保船舶航行的安全。
要实现船岸之间的信息同步,首先考虑的是分布式数据库技术。
每一艘船舶都有自己的一个数据中心,岸端有一个中心数据库服务器。
通过这一技术,可以使数据库应用系统延伸到船舶,并通过互联网与岸端管理机关进行数据拷贝,从而实现船岸之间的信息传递。
但是,从现有的技术来看,远洋船舶和陆地之间难以保持长期在线连接的状态:GPRS和CDMA技术在茫茫的大洋中存在很多的盲点,而通过卫通保持长期的连接费用又很高。
因此,从经济角度和可行性上考虑,船岸之间通过海事卫星短时连接,从而达到船岸之间数据的同步,是最经济、最安全和最有效的方法。
系统整体构架模型图如下所示:一、系统的总体思路本方案可抽象成如下结构的系统模型: 陆地与船舶两端的系统通过一个抽象的网络连接来实现数据通信与传输。
其中应用系统只负责处理数据和事务流程,中间由一个负责传输数据的抽象网络连接来为两端系统提供应用层上的连接和数据传输的通道。
当需要进行数据通信时,系统将从数据库中查出待增量数据生成一个特殊文件。
这个文件实际上就是一个应用层的通信协议,要精炼、可扩展、功能完备。
系统只需要将要同步的数据交由抽象的网络层处理、传输,并保证传输数据的顺序性、正确性与安全性。
这样,就可以将整个系统中数据事务处理部分与数据传输同步部分分离开来,简化了系统的设计。
基于USB2.0多通道同步数据采集系统设计

第2 9卷第 5期
20 0 6年 1 0月
武 汉 科 技 大 学 学 报 (自 然 科 学 版 ) J f h nU i f c. eh ( a r cec dt n .o Wu a n.o i&T c . N t a S i eE io ) S ul n i
现 代工业 生 产和科 学研 究对 数据 采集 的要 求 日益 提 高 , 瞬 态 信 号 测 量 、 在 图像 处 理 等 一 些 高
速 、 精度 的测 量 中 , 高 需要 进行 高速数 据采 集 。现 在通用 的高速数 据采 集 卡 一般 多 是 P I 或 IA C卡 S 卡 , 它 们都存 在 以下缺 点 : 但 安装麻 烦 、 价格 昂贵 ; 受计 算 机 插槽 数 量 、 址 、 地 中断 资源 限制 , 扩展 可
性 差 ; 一些 电磁 干扰性 强 的测试 现场 , 在 无法 专 门
对 其做 电磁屏 蔽 , 导致 采集 的数据 失 真 。 近 几年 出现 的 通 用 串 行 总线 U B是 用 来 连 S 接外 围设备 与计 算 机 之 间的 新 式标 准 接 口总 线 。 它是 一 种快 速 、 向 、 双 同步 传输 、 价 并 可 实现 热 廉 拔插 的 串行接 口。该 总线 接 口具 有 安装 方 便 、 带
通 过对其 可 编程接 口控 制逻 辑 的合理 设计 和芯 片
内部 FF 的有 效 运 用 , 现 了 数 据 的高 速 连 续 IO 实 采 样和 传输 。
1 系统 组 成 与 工 作 原 理
1 1 系统 组成 . 采集 系统 主 要 由 3个 部 分 组 成 : 主机 ( 支 能 持 UB. S 2 0协议 的 P C机 ) 内部 包 含 C U及 高 速 、 P 缓 存 的 U B接 口控 制 芯 片 ( Y C 8 1 ) 高 速 S C 7 60 3 和 同步采 样芯 片 ( A 1 6 , 图 1所示 。 M X 1 )如
设计ClickHouse分布式表实现数据同步

设计ClickHouse分布式表实现数据同步作者:吴帆青云数据库团队成员主要负责维护 MySQL 及 ClickHouse 产品开发,擅长故障分析,性能优化。
在多副本分布式 ClickHouse 集群中,通常需要使⽤ Distributed 表写⼊或读取数据,Distributed 表引擎⾃⾝不存储任何数据,它能够作为分布式表的⼀层透明代理,在集群内部⾃动开展数据的写⼊、分发、查询、路由等⼯作。
Distributed 表实现副本数据同步有两种⽅案:1. Distributed + MergeTree2. Distributed + ReplicateMergeTree| Distributed + MergeTree在使⽤这种⽅案时 internal_replication 需要设为 false,向 Distributed 表写⼊数据,Distributed 表会将数据写⼊集群内的每个副本。
Distributed 节点需要负责所有分⽚和副本的数据写⼊⼯作。
1. 集群配置<logical_consistency_cluster><shard><internal_replication>false</internal_replication><replica><host>shard1-repl1</host><port>9000</port></replica><replica><host>shard1-repl2</host><port>9000</port></replica></shard></logical_consistency_cluster>2. 数据写⼊CREATE TABLE test.t_local on cluster logical_consistency_cluster(EventDate DateTime,CounterID UInt32,UserID UInt32) ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate) ;CREATE TABLE test.t_logical_Distributed on cluster logical_consistency_cluster(EventDate DateTime,CounterID UInt32,UserID UInt32)ENGINE = Distributed(logical_consistency_cluster, test, t_local, CounterID) ;INSERT INTO test.t_logical_Distributed VALUES ('2019-01-16 00:00:00', 1, 1),('2019-02-10 00:00:00',2, 2),('2019-03-10 00:00:00',3, 3)3. 数据查询# shard1-repl1SELECT *FROM test.t_localQuery id: bd031554-b1e0-4fda-9ff8-1145ffae5b02┌───────────EventDate──┬─CounterID─┬─UserID─┐│ 2019-03-10 00:00:00 │ 3 │ 3 │└─────────────────────┴───────────┴────────┘┌───────────EventDate─┬─CounterID─┬─UserID─┐│ 2019-02-10 00:00:00 │ 2 │ 2 │└─────────────────────┴───────────┴────────┘┌───────────EventDate─┬─CounterID─┬─UserID─┐│ 2019-01-16 00:00:00 │ 1 │ 1 │└─────────────────────┴───────────┴────────┘3 rows in set. Elapsed: 0.004 sec.------------------------------------------# shard1-repl2SELECT *FROM test.t_localQuery id: 636f7580-02e0-4279-bc9b-1f153c0473dc┌───────────EventDate─┬─CounterID─┬─UserID─┐│ 2019-01-16 00:00:00 │ 1 │ 1 │└─────────────────────┴───────────┴────────┘┌───────────EventDate─┬─CounterID─┬─UserID─┐│ 2019-03-10 00:00:00 │ 3 │ 3 │└─────────────────────┴───────────┴────────┘┌───────────EventDate─┬─CounterID─┬─UserID─┐│ 2019-02-10 00:00:00 │ 2 │ 2 │└─────────────────────┴───────────┴────────┘3 rows in set. Elapsed: 0.005 sec.通过写⼊测试我们可以看到每个副本数据是⼀致的。
基于SAR-ADC的精密同步数据采集系统设计

基于SAR-ADC的精密同步数据采集系统设计王炳文【摘要】For the problem of simultaneously sampling of multi-channel analog signals in a data acquiring system, the schemes of the system were discussed.Based on SAR-ADC, a kind of 16 bit AD convert system which controlled by FPGA was designed.The system could realize real-time synchronous sampling of analog signals.And the differences of sampling rate among multi-channel analog signals were well balanced in this system.The Signal to Noise and Distortion Ratio(SINAD) and Effective Number of Bits(ENOB) of the system were tested, and it was proved that the system can achieve good AC characters.%针对某精密数据采集系统中模拟信号同步采样问题,文章研究了多通道同步模拟信号采集方法,设计了一种基于SAR-ADC、使用FPGA控制的16位同步采样AD转换系统.该系统可实现模拟信号的实时同步采样,同时兼顾多路模拟信号采样频率要求的差异性,最后通过试验测试了该系统的信纳比(SINAD)和有效位数(ENOB).测试结果表明,该系统具有良好的动态性能指标.【期刊名称】《微型机与应用》【年(卷),期】2017(036)007【总页数】4页(P29-31,34)【关键词】SAR-ADC;同步采样;FPGA【作者】王炳文【作者单位】中国航空工业集团公司西安航空计算技术研究所,陕西西安 710065【正文语种】中文【中图分类】TP353在惯性测量[1]、功率因数校正[2]、电机控制等工业应用场合,系统需要采集同一时刻来自多个传感器的模拟信号,并根据当前的状态进行计算和控制。
基于OAI-PMH协议的WMO信息系统元数据同步功能设计与实现

个 与 应 用 无 关 的互 操 作 框 架 。OAI ห้องสมุดไป่ตู้H 通 过 — P
简单 性 、 放性 和 可操 作性 著 称 。1 9 开 9 9年 1 O月 , 在
美 国新 墨 西 哥 州 的圣 达 菲 召 开 的一 次 中心 议 题 为
HTT P协议 的 GE T方法 发送请 求 , XML格 式返 以 回响应结 果 。该协 议 的核心是 其 提供 的 6个命 令 动 词 ( r ) 收 割 者通 过 这 6个命 令 动 词 ( 1 收割 Veb , 表 )
O ( e c ieIiaie 意为 开放文 档先 AIOp nArhv nt t ) i v
导 , 由 P u n p r 、 c u e Heb r Va e 是 a l s ag Ri L c 、 ret nd Gi k
S mp l o e 等人 提 出的 , 个 旨在促进 网 络信 息资 源 开 一
“ 电子 出版 文 献 的互 操 作 ” 的会 议 上 第 一 次 提 出 了
OAI 设想 , 此 后 的 几 年 时 间里 , 在 OAI 议 就 得 到 协
提供 者仓 储 中 的所 有记 录或某 个数 据集 的记 录或特
定 时间段 内的记 录 。
了广泛 接受 和应 用 _ 。基 于 OAI MH 协 议 , 们 3 ] — P 我 研 究并 开发 了一 个元 数据 存储 、 割和 提供 系统 , 收 以
放 、 布与 共享 的合作 组织 。现 由美 国梅 隆基 金会 、 发
存 储 位置 无 关 的 数 据 发 现 、 问 和 检 索 服 务 ( aa 访 D t
Di o ey s v r ,Acesa d R ti a)】。元 数 据 在 数 c c s n er v 1l e _ J 据 发现 和检 索 中具有 重 要 的地 位[ , I 2 W S系 统 也 将 ]
RS-422与1553B总线同步数据传输系统的设计与实现

ELE CTR0NI C M EAS UREM ENT TECHN 0L 0G Y
RS - 4 2 2与 1 5 5 3 B总 线 同步 数 据传 输 系统 的 设 计 与 实 现
徐 东东 贲广利
( 中 国科 学 院 长 春 光 学精 密机 械 与 物 理研 究 所 长 春 1 3 0 0 3 3 )
Xu Don gdo ng Be n Gu a ngl i
( Ch a n g c hu n I ns t i t u t e o f Op t i c s ,Fi n e Me c h a n i c s ,a n d Ph y s i c s ,Ch i n e s e Ac a d e my o f Sc i e n c e ,Ch a n g c hu n 1 3 00 3 3,Ch i na )
图3同步数据传输逻辑设计图4数据同步发送控制状态机bu61580芯片只对外触发信号的上升沿敏感所以每帧异步rs422数据对应一次1553b数据发送1553b的bc帧的第一条消息的同步头与异步rs422第一个数据的起始位信号间数据延迟不超过3s实现取数指令的同步发送
电
子
测
量
技
术
第4 O卷 第 3期 2 0 1 7 年 3月
L a b V I E w 软 件 的 多 线 程 技 术 及 灵 活 的 队列 操 作 对 回传 数 据 进 行 同 步 显 示 与 存 储 , 为进 一 步 处 理 提供 支 持 。 关 键 词 :1 5 5 3 B总 线 ; 同步 数 据 传 输 I 夕 部触发器 ; 多线 程 技 术 中 图分 类 号 :T P 3 3 6 ; TN9 1 9 . 6 文献标识码 i B 国 家 标 准 学 科 分 类代 码 :5 9 0 . 5 0 3 0
基于 PXI Express 的托卡马克同步数据采集系统设计

LI U Ru i ,ZH ENG W e i ,ZHANG Mi ng ,W ENG Chu — qi a o , ZH UANG Ge 一 ,DI NG Ton g — ha i 一,YU Ke — x un ,
i mp l e me n t a t i o n o f t h e d i s t r i b u t e d To k a ma k s y n c h r o n o u s h i g h — s p e e d d a t a a c q u i s i t i o n
( 1 . S t a t e Ke y L a b o r a t o r y o f Ad v a n c e d E l e c t r o ma g n e t i c E n g i n e e r i n g a n d T e c h n o l o g y, Hu a z h o n g U n i v e r s i t y o f S c i e n c e a n d T e c h n o l o g y, Wu h a n 4 3 0 0 7 4 , C h i n a ; 2 . S c h o o l o f El e c t r i c a l a n d El e c t r o n i c E n g i n e e r i n g,
并 将 数 据 存 储 于 核 聚 变领 域 通 用 的 MDS p l u s 数 据 库 中 。测 试 和 使 用 结 果 表 明 , 系统 能在 2 MS p s 采 样 率 下连续稳定工作 , 可较好地满足装置运 行的需要 。 关键 词 : 托 卡 马克 ; P XI E x p r e s s ; 数据采集 ; MD S p l u s 中 图分 类 号 : TL 6 2 文献标志码 : A 文章编号 : 1 0 0 0 — 6 9 3 1 ( 2 0 1 4 ) 0 1 — 0 1 6 9 — 0 6
基于嵌入式系统的同步数据采集设计及应用

( 庆 大 学输 配 电 装 备 及 系统 安 全 与 新技 术 国 家重 点 实验 室 重 庆 重 403 ) 0 0 0
摘
要 :为实现对发 电设 备电参量的实时测量 和监控 , 绍了基于 A 1 介 T9 RM9 0 2 0的外 部总线接 口( B ) E I与数 据采集
a q iiin c i M AX1 2 i r s n e f r c us t h p o 34 s p e e t d o me s rn a d a u i g n mo i rn ee t ia p r me e s f o r g n r tn n t i g lc rc l a a t r o p we - e e a i g o e u p n . e b s i t ra e d i e n li s i g o W o k r e i n d, n h a t a i me i f c lu a i g q ime t Th u n e f c , r r a d mu tt k n f Vx v a r s a e d sg e a d t e f s rt h t o ac ltn c t e e e t ia a a t ri e u e . e r s l s o h tt eme h d c n i p o e t em e s r me ta c r c n p e h lc rc lp r me e d d c d Th e u t h ws t a h t o a S m rv h a u e n c u a ya ds ed o o r g n r t g e u p n . e m e h d h s r f r n e v l e t h p l a i n o m b d e y t m n ee t i l fp we— e e a i q i me t Th t o a e e e c a u o t e a p i t f e e d d s s e i lc rc n c o a e g n e i g fed . n i e rn il s
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据同步系统设计
摘要:在大型分布式应用中,经常需要对数据进行跨库或跨网络进行同步,出于资金或数据安全的方面考虑,不能过多依赖硬件或数据库进行同步,因此需要一种安全和高性能的数据同步解决方案,本文讨论了在不依赖数据库的基础上,实现数据同步的功能,并在性能和可扩展性上进行了优化。
在分布式领域有个CAP理论,是说Consistency(一致性), Availability(可用性), Partition tolerance(分区和容错) 三部分在系统实现只可同时满足二点,无法三者兼顾。
关键词:数据同步分布式应用CAP理论
一、应用场景
在大型分布式应用中,我们经常碰到在多数据库之间的数据同步问题,比如说一款游戏,在玩家注册后,可以马上登陆进入服务器,即数据在一个IDC 更新,其它IDC立即可见。
为了简化思路,我们这里称玩家注册的数据库(数据来源库)为中心库,同步目的地的数据库为分站库。
能做的
数据快速搬运到指定的IDC节点
数据传递过程中失败时,重新传递
监控数据传递流程
故障转移
数据版本控制
不能做的
不参与业务行为,业务操作只能通过注册的方式集成
不保存业务数据,不提供传递的业务的查询
二、系统要求
1.数据快速同步:除去网络原因,正常情况下从来源库同步到接收库的时间不超过300m
2.高并发:单应用每秒同步2000条记录
3.可伸缩性,在资源达到上限时能通过增加应用分散处理后期增长的压力
4.数据完整性要求,在数据同步过程中保证数据不丢失和数据安全
5.故障转移和数据恢复功能
三、设计思路
系统优化,最常用的就是进行业务切割,将总任务切割为许多子任务,分区块分析系统中可能存在的性能瓶颈并有针对性地进行优化,在本系统中,主要业务包含以下内容:
1.Syncer:外部接口,接收同步数据请求,初始化同步系统的一些必要数据
2.Delivery:将同步数据按照业务或优先级进行分发,并记录分发结果
3.Batch:分站库收到同步数据后,根据不同的业务类型调用相应的业务逻辑处理数据
基于以上三块业务功能,我们可以把整个数据同步流程切割为3个应用,具体如下图显示。
在Syncer端应用中,我们需要将原始同步数据和分发的分站进行存储,以备失败恢复,此时如果采用数据库进行存储,势必会受限于数据库性能影响,因此我们采用了高效的key-value风格存储的redis服务来记录数据,同时在不同应用之间采用队列(Httpsqs服务)的方式来进行通讯,同时也保证的数据通讯的顺序性,为之后的顺序同步做好基础。
Httpsqs提供了http风格的数据操作模式,业务编码非常简单,同时也提供了web形式的队列处理情况查询,这是选择它做队列服务很大一部分原因:方便业务操作和性能监控。
队列处理
根据业务划分队列名称,每个队列再划分为三个关联队列:正常队列(Normal)、重试队列(Retry)、死亡队列(Death),处理流程为:
1.【进程A】把数据先放入正常队列,如果放置失败写恢复日志
2.【进程B】监听正常队列,获取队列数据并进行业务处理,处理失败放入重试队列
3.【进程C】监听重试队列,过几秒获取队列数据并重新进行业务处理,处理失败放入死亡队列
4.【进程D】监听死亡队列,获取队列数据并重新进行业务处理,处理失
败重新放入死亡队列尾部,等待下一次轮回
数据同步流程
1.发送数据,支持Http POST:curl -d “经过URL编码的文本消息”
2.sync-syncer接收到同步数据请求,创建sid并分解出需要同步的节点个数,把原始数据和子任务写入redis中,sid写入httpsqs中
3.sync-delivery监听中心httpsqs队列,根据sid从redis获取到原始数据和需要同步的节点地址,往其他节点发送数据,流程如按”队列处理流程”进行
4.sync-batch监听分节点的httpsqs队列,调用已经注册的处理器处理队列数据,流程如按”队列处理流程”进行
四、恢复和监控
恢复数据源
httpsqs中的死亡队列- 业务处理暂时处理不了的数据
recovery日志文件- 其它异常下的数据,例如网络无法连接、内部服务不可用
数据恢复
独立的应用来处理正常流程中没有完成的任务,主要功能有:
监听死亡队列,进行业务重做,再次执行失败时将执行次数+1,最大执行次数为5(默认),超出上限则记录到恢复日志中
读取恢复日志,重新放入死亡队列
应用监控
使用scribe日志框架服务业务日志的采集和监控
收集重要的业务操作日志
动态的开启/关闭某类业务日志
对redis进行监控
对httpsps,监控队列个数,每个队列的状态
五、数据结构
sid(sync id) - 全局id
v(version) - 版本号
data - 业务数据
ctime(create time) - 创建时间(毫秒)
exec - 可选,执行次数
六、编码及测试结果
经过编码和测试,在内网环境下,在无数据库限制的情况下,单应用可以同步1500条/秒,基本满足业务需求。
同时在性能不明显下降的情况下,如果需进一步扩展,可采用分布集群式布署,吞吐量将成倍的增长。
参考文献:
[1](澳)赖利.Java网络编程与分布式计算,机械工业出版社,2003:64-150
[2]许骏.面向服务的网格计算—新型分布式计算休憩系与中间件,科学出版社,2009:86-312
[3]林昊.分布式Java应用:基础与实践,电子工业出版社,2010:57-84。