跨JAVA WEB工程远程数据传输方案设计

JAVA WEB工程远程更新方案设计

版本:V0.1

作者:CG

背景

需要在JAVAWEB工程,基于HTTP协议可靠的传输大规模数据。

原因:在使用数据库远程连接的时候由于远程数据库连接本身的不可靠性(服务器端经常断开与JDBC的连接),而造成事务不断回滚而造成数据始终无法传递。所以需要设计一个可靠的、通用的远程更新方案。

方案流程

 

技术选型及实验结果

l         序列化、反序列化实验

使用第三方JAVAxstream-1.3.1

此包支持将数据进行XML格式的序列化、反序列化。

实验结果:

1.       该工具支持JAVA数据对象的序列化、反序列化。

2.       该工具支持JAVA容器对象的序列化、反序列化。

完全满足数据传输需求。

 

l         文件压缩实验

使用JAVA基本类库的java.util.zip工具,可以正确的将不包含中文字符的文件、目录打包。

满足本方案需求。

 

l         文件传输实验

上传方使用 commons-httpclient-3.1 工具模拟进行文件POST方法。

接收方使用 commons-fileupload-1.2.1 工具接收文件上传。

可以正确的传输文件,满足本方案需求。

 

l         数据实验

模拟实际数据,在一个任务批次下进行以上序列化、压缩。情况如下:

 

使用topv3库,模拟传输应用到的数据量。

数据记录如下:

表名

tasked

记录条数

序列化后文件大小

Display_top

8257568

774

89KB

display_top_url

8257568

15024

1967KB

video_information

all

997

392KB

 

总计数据库记录条数:16795

总计文件大小:2.38MB

压缩之后大小:223KB

 

序列化、反序列化、压缩和解压时间忽略不计,按文件传输时间为瓶颈估算一个批次时间:

 

假设上传速度为10KB/S(实际情况应该更快), 一共需要22秒,可以接受。


 

流程保证

 

l         客户端

 

1.       客户端的序列化、打包在本地运行,调试完成之后处理静态数据一般不会出错(若出错则报告管理员),此处不再赘述。

2.       HTTP传输过程中,若本地超时(包括连接不到服务器)、或者服务器返回超时、失败信息,则中止当次传输任务,等待若干秒(需结合实际情况调整),再进行连接。

3.       若始终任务未成功(重试次数范围内未传输成功),则发邮件报警通知管理员。

4.       若服务器端解压缩、反序列化失败,立即返回任务失败。

 

 

客户端流程


 

l         服务器端

1.  接受到上传任务,则立即将当前任务清空。

2.  处理上传过程中,若遇到数据超时、失败,则立即给客户端返回相应信息。

3.  在解压、反序列化过程中若异常,则发邮件报警通知管理员。并返回给客户端失败。

 

 

服务器端流程

最终流程及选型汇总

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值