博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据同步功能梳理
阅读量:4562 次
发布时间:2019-06-08

本文共 757 字,大约阅读时间需要 2 分钟。

在分布式的环境中,数据同步是一个经常会碰到的问题,在内网中可以通过数据库发布订阅或Always On实现主从复制 ,读写分离。但是在.net平台中没有现成的跨网夸机房的数据同步方案。数据同步是一个复杂的过程,特别是涉及到双向同步,要保证同步的数据一致性、同步的高可用性,是需要良好设计和仔细权衡的一个事情。

一个良好的同步框架必须保证数据的正确同步,同时异常重试、异常监控通知、同步状态反馈等都是需要考虑的方面,以下是关于同步功能的简单梳理和基于CDC单向同步的同步流程梳理。通过变通的方式可以将单向同步扩展为双向同步(不考虑同表同字段双向同步,实际在业务设计时可以规避相同字段的双向同步问题)。

同步功能点梳理:

 中心直接调用子节点服务的方式,中心为执行调度方,子节点只负责接收任务执行同步并反馈执行结果。

 异步方式处理同步,中心分解同步任务,传递同步任务,子节点拉取任务,执行同步,推送同步状态,中心轮询同步状态,对同步成功的任务进行后续移除记录等操作。采用异步的方式会增加数据同步程序的复杂程度,但是系统的吞吐量会有一定程度的增加。在同步各个节点之间可以加入消息队列,通过队列对同步任务,同步状态反馈进行统一分发。隔离各个节点之间的强关联。

后话:

针对同一张表的同步操作出现异常时,同一个子库相同表的同步操作会挂起,异常任务会不断重试,阻塞后续同步任务,但不同表,不同库之间不受影响。在同步任务不是幂等操作的情况下,阻塞是唯一能保证数据一致性的方式。实际的情况中,抛开断网,程序崩溃的特殊情况,实际通过健壮测试和有序发布的系统,是基本可以规避同步问题出现的。

 

本文为作者原创,转载请注明出处。

转载于:https://www.cnblogs.com/WangHuaiSheng/p/7687931.html

你可能感兴趣的文章
确保新站自身站点设计的合理性的六大注意点
查看>>
1033. 旧键盘打字(20)
查看>>
The Zen of Python
查看>>
git安装及使用
查看>>
mysql一个非常实用解决sql查询优化的函数explain
查看>>
图文讲解NTFS和FAT32硬盘下 asp.net 生成word 错误: 80070005 和 错误:8000401a 的解决方法...
查看>>
《学习》5连接查询(高级查询)
查看>>
[BZOJ2730][HNOI2012]矿场搭建 点双 割点
查看>>
Linux/Mac 挂载远程服务器目录到本地
查看>>
1,实现在线答题 2,答题结束后可以判断对错 3,并将错题的结果保存起来。...
查看>>
JS中原始值和引用值的储存方式
查看>>
初学C#的简单编程题合集(更新)
查看>>
Linux学习闲谈(一)——Shell基本操作与命令
查看>>
写日志文件
查看>>
python的常用库及文档使用
查看>>
ArcGIS 中要素的查询与修改
查看>>
linux环境下apache2与tomcat6的负载配置
查看>>
powerdesigner相关概念理解
查看>>
求DNA序列中各个碱基的含量
查看>>
高级排序算法--希尔排序
查看>>