浅述一种分布式环境下多服务器数据报送方法

2020-05-19 02:33陈龙
科学与信息化 2020年6期

摘 要 本文针对在多节点服务器上报数据时容易存在文件重名的问题,提出了一种分布式环境下多服务器数据报送方法,通过分布式锁服务器和统一编号服务器,对业务数据进行了统一命名,避免了报送目的端文件服务器上的文件重名和简化了文件出错重传机制,并对传送的数据文件进行二进制的压缩和多重加密,通过sftp途径将数据文件传输和上传至服务器,提高数据传输安全性。

关键词 分布式环境;数据报送;数据传输安全

引言

随着互联网技术的发展,互联网应用越来越复杂,数据交互越来越频繁,一个大型的业务系统通常由多个业务子系统组成,通过分布式部署的方式共同完成业务服务[1]。在这个背景下,不同的业务子系统之间必然会存在数据交互,考虑到业务子系统的健康稳定运行,而同一功能的业务子系统通常又会部署多个主从节点服务器以分担性能压力,由于相同的节点服务器部署的都是同一个应用,运行和产生数据的方式都是完全一致的,为了便于分析和查找,通常数据文件都会在命名中添加时间戳,这样在多台节点服务器上就有一定概率会产生相同名称的数据文件,当将这些数据文件进行报送的时候,可能因为文件命名重复问题造成报送失败或文件覆盖,从而丢失数据[2]。另外,多个业务子系统可能由不同的公司、开发组承建,由于共享一些网络资源,需要保证数据传输的安全性和可靠性[3]。

针对以上情况,本文提出了一种分布式环境下多服务器数据报送方法,通过分布式锁服务器和统一编号服务器,对业务数据进行了统一命名,避免同一时间多个业务节点服务器向统一编号服务器同时申请编号,不仅避免了报送目的端文件服务器上的文件重名,也简化了文件出错重传机制,传送出错的文件无须再重新进行错误流程的特殊处理。另外,为提高数据传输的安全性,本方法对数据文件进行AES和openssql双重加密,只有拥有私钥的文件接收服务器才能正确解密,即使数据文件被其他恶意应用截获,也无法正确解密读取数据。

1多服务器数据报送基本处理流程

由于存在多台业务服务器,且都产生同质数据,不同业务服务器上产生的数据有存在重名的可能性。如果直接向文件服务器进行报送,在文件服务器上会收到相同命名的文件,可能会产生数据的覆盖或丢失。为此本文方法从统一编号服务器获取唯一的编号,可以附加在原文件名后,避免造成文件重名。为防止多个业务服务器同时报送数据导致报送冲突,本文引入分布式锁服务器,加锁并拦截其他业务节点服务器访问,多服务器数据报送基本处理流程。

(1)业务节点服务器按照业务逻辑生成数据文件,数据文件按照生成时间进行命名;

(2)对数据文件进行压缩和加密,加密时使用对外公布的公钥对压缩文件进行openssql加密,生成加密后的数据文件;

(3)向分布式锁服务器申请访问统一编号服务器,如果当前有其他业务节点服务器正在连接统一编号服务器,则拒绝请求并告知业务服务器短暂等待之后再重新发起申请;

(4)分布式锁服务器允许访问统一编号服务器,加锁并拦截其他业务节点服务器访问;

(5)访问统一编号服务器,由统一编号服务器根据资源类型、时间等参数自动计算生成新编号,并将最新编号更新到数据存储中;

(6)业务节点服务器拿到申请的编号,对加密文件进行重命名,附加上统一编号,确保加密文件全网唯一;

(7)通过sftp上传至文件服务器指定目录;

(8)出错重传:重复3-8步骤即可。

2业务服务器数据文件压缩加密上传流程

传送的数据文件进行了二进制的压缩和多重加密,确保数据文件被非法截获后无法正常解析,并且通过sftp途径将数据文件传输和上传至服务器,提高数据传输的安全性。

(1)业务节点服务器产生新的数据文件,同时随机生成n位的密码文件.txt;

(2)对数据文件名称、原始大小、数据条数、生成时间生成一个校验文件;

(3)将数据文件和校验文件压缩到一个压缩包中,压缩算法使用tar和gz方式;

(4)用第一步生成的密码文件对压缩文件进行AES对称加密,得到加密数据文件;

(5)用文件服务器对外开放的公钥,使用openssl非对称算法对密码文件进行加密,得到.sha1加密密码文件;

(6)将加密数据文件和加密密码文件通过sftp途径上传至文件服务器[4]。

3結束语

本方法采用分布式锁服务器和统一编号服务器对业务数据进行了统一命名,传送的数据文件进行了二进制的压缩和多重加密,并通过sftp途径传输和上传至服务器,相比于分布式环境下常规数据报送方法具备以下优点如下:

3.1 数据文件防重名

本文采用统一编号服务器获取唯一的编号,不会造成文件重名;同时引入分布式锁服务器,避免同一时间多个业务节点服务器向统一编号服务器同时申请编号,防止多个业务服务器数据上报冲突。

3.2 出错文件易重传

由于引入了统一编号服务器,传送出错的文件不需要再重新进行错误流程的特殊处理,只需要重新向统一编号服务器申请新编号即可按照正常报送流程进行报送,一定程度简化了文件出错重传机制。

3.3 数据传输更安全

本文采用了一系列数据安全校验方法,包括生成数据文件、校验文件、压缩文件、对称加密/解密、非对称加密/解密等过程,并通过sftp途径将数据文件上传至文件服务器,提高了数据传输的安全性。

3.4 业务节点服务器易扩展

由于数据报送时都从编号服务器获取统一编号,当新增加一台业务节点服务器时,新服务器所多产生的数据文件采用相同的流程获取编号,文件服务器仍然可以按照原定业务逻辑进行数据处理。

参考文献

[1] 张群,熊英,黄庆炬. 分布式教学系统中数据交互的实现[J]. 软件导刊,2006,(17):95-97.

[2] 王磊,刘晓鹏. 海量文件传输重名避规的研究和实现[J]. 科技资讯,2008,(34):227.

[3] 胡晓婷,覃中平,张红,等. OpenSSL中AES算法的研究与优化[J]. 微计算机信息,2009,(12):89-91.

[4] 谢长生,李晓钰. 基于网络备份系统的SFTP性能优化分析与实现[J]. 计算机工程与科学,2003,(5):5-8,13.

作者简介

陈龙(1988-),男,四川成都人;研究方向:数字家庭、智能组网。