摘 要 本文針對在多節點服務器上報數據時容易存在文件重名的問題,提出了一種分布式環境下多服務器數據報送方法,通過分布式鎖服務器和統一編號服務器,對業務數據進行了統一命名,避免了報送目的端文件服務器上的文件重名和簡化了文件出錯重傳機制,并對傳送的數據文件進行二進制的壓縮和多重加密,通過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-),男,四川成都人;研究方向:數字家庭、智能組網。