关于数据的异步传输之我见 转载请注明!
2011-06-09 14:19
169 查看
数据传输需求:
将A服务器的Oracle数据库数据(注,该表的数据量巨大,检索都比较慢,不考虑再优化),抽取符合要求的数据通过网络传输到异地的B数据库服务器。那么如何保证数据传输的正确性,可靠性呢?
根据理解,主要有以下几点需要关注的问题:
1、直接从A服务器抽取数据通过网络传输到B,由于整个过程花费时间过长,容易导致Session失效,不合适。
2、整个过程任意一个过程发生异常,处理起来比较复杂,无法或者说很难准确定位异常的发生的具体时间和具体的数据。
3、B服务器入库过程中,如果需要检查数据的重复性,也是额外的时间消耗。
4、整个过程不能在一个事务中完成,否则,就会出现2的过程。
5、其它问题,无法保证数据的可靠性、有效性;即使能够保证也要花费较大的代价(时间、空间)去完成。
解决方案:
根据要求,我们可以将整个过程分为五个阶段,各个阶段都相对独立,只有少量的数据交互。
通过上图,我们增加临时表和缓存技术,
整个过程是清晰的,透明的。
具体的实现:
三、具体的实现
1事务一:A服务器数据表到临时表的过程,如下图所示(这里,我们将下面的从原始表到临时表的状态定义为“OtoT”——Origine
to Temp):
2事务二:A临时表到服务端缓存的过程,如下图所示(这里从临时表到缓存的计数器定义为TtoC——Temp
to Cache):
在临时表取数据的过程中,通过参数设置可以定义批次的数据量,假设定义的数据量为100,那么每次从临时表取100条数据,并压缩成一个byte[]数据流。计数器是按照byte[]的个数决定的,而非原始数据100决定。
3事务三:A端缓存到B端缓存过程如下图所示(B端缓存的计数器为CtoC):
4事务四:B段缓存到B端临时表的过程如下图所示:
5事务五:B临时表到目的表过程如下图所示(这里,我们将下面的从临时表到目的表的状态定义为“TtoT”——Temp
to Target):
转载请注明:www.blog.csdn.net/coolwzjcool
将A服务器的Oracle数据库数据(注,该表的数据量巨大,检索都比较慢,不考虑再优化),抽取符合要求的数据通过网络传输到异地的B数据库服务器。那么如何保证数据传输的正确性,可靠性呢?
根据理解,主要有以下几点需要关注的问题:
1、直接从A服务器抽取数据通过网络传输到B,由于整个过程花费时间过长,容易导致Session失效,不合适。
2、整个过程任意一个过程发生异常,处理起来比较复杂,无法或者说很难准确定位异常的发生的具体时间和具体的数据。
3、B服务器入库过程中,如果需要检查数据的重复性,也是额外的时间消耗。
4、整个过程不能在一个事务中完成,否则,就会出现2的过程。
5、其它问题,无法保证数据的可靠性、有效性;即使能够保证也要花费较大的代价(时间、空间)去完成。
解决方案:
根据要求,我们可以将整个过程分为五个阶段,各个阶段都相对独立,只有少量的数据交互。
通过上图,我们增加临时表和缓存技术,
整个过程是清晰的,透明的。
具体的实现:
三、具体的实现
1事务一:A服务器数据表到临时表的过程,如下图所示(这里,我们将下面的从原始表到临时表的状态定义为“OtoT”——Origine
to Temp):
2事务二:A临时表到服务端缓存的过程,如下图所示(这里从临时表到缓存的计数器定义为TtoC——Temp
to Cache):
在临时表取数据的过程中,通过参数设置可以定义批次的数据量,假设定义的数据量为100,那么每次从临时表取100条数据,并压缩成一个byte[]数据流。计数器是按照byte[]的个数决定的,而非原始数据100决定。
3事务三:A端缓存到B端缓存过程如下图所示(B端缓存的计数器为CtoC):
4事务四:B段缓存到B端临时表的过程如下图所示:
5事务五:B临时表到目的表过程如下图所示(这里,我们将下面的从临时表到目的表的状态定义为“TtoT”——Temp
to Target):
转载请注明:www.blog.csdn.net/coolwzjcool
相关文章推荐
- 关于转载“一种新的穿透防火墙的数据传输技术”的一点看法
- 关于web页面缓存问题解决方法,如图片缓存,异步提交数据页面不更新
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- 深入网络协议来理解数据传输二(转载整理)
- AJAX 异步传输数据的问题
- Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比--转载
- 关于fragment之间的数据传输
- 关于通过JAVA的HTTP POST请求传输XML型数据
- 关于H.264视频编码传输的QoS特性分析(转载)
- Struts2数据传输的背后机制:ValueStack(值栈)(转载)
- 关于列表界面与详情界面数据传输共享的一点疑问
- 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据[转载MSDN]
- jsp页面实现异步向后台传输数据
- Struts2数据传输的背后机制:ValueStack(值栈)(转载)
- 基于jquery异步传输json数据格式实例代码
- [转载]如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据
- [转载]C# TCP实现多个客户端与服务端 数据 与 文件的传输
- jquery 选择input的checkbox属性 获取checkbox的值 用异步传输数据 返回结果
- 关于Qt5 SerialPort串口传输丢失数据问题。
- 关于flume 中spooldir传输数据报出HDFS IO error ..... File type DataStream not supported 错误解决