国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

分布式平臺數(shù)據(jù)同步軟件的分析與設(shè)計

2021-06-28 01:04謝劍
現(xiàn)代信息科技 2021年1期

摘? 要:分布式架構(gòu)在互聯(lián)網(wǎng)企業(yè)中已得到廣泛應(yīng)用,各平臺間的數(shù)據(jù)如何同步是應(yīng)用中需解決的關(guān)鍵問題,結(jié)合“面向?qū)ο缶幊蹋ǜ呒墸闭n程內(nèi)容,對通用數(shù)據(jù)同步軟件進行了分析與設(shè)計。該設(shè)計主要包含待同步記錄掃描、數(shù)據(jù)通知、數(shù)據(jù)接收、狀態(tài)查詢以及相應(yīng)的數(shù)據(jù)庫操作、參數(shù)配置、日志記錄等功能,可實現(xiàn)數(shù)據(jù)的安全高效同步,以便匯總統(tǒng)計分析,支撐業(yè)務(wù)發(fā)展,具有較高實用價值。

關(guān)鍵詞:分布式平臺;數(shù)據(jù)同步;安全高效

中圖分類號:TP311.5? ? ? 文獻標(biāo)識碼:A 文章編號:2096-4706(2021)01-0018-04

Analysis and Design of Data Synchronization Software on Distributed Platform

XIE Jian

(Hunan College of Information,Changsha? 410200,China)

Abstract:Distributed architecture has been widely used in internet enterprises. How to synchronize data among various platforms is the key issue that needs to be solved in application. Combined with the course content of the “Object-Oriented Programming(Advanced Level)”,general data synchronization software is analyzed and designed. The design mainly includes the following functions,such as scanning of records to be synchronized,data notification,data receiving,status inquiry,and corresponding database operations,parameter configuration,log records,etc.,which can achieve safe and efficient synchronization of data,so as to make summarization and statistical analysis,support business development,it has higher practical value.

Keywords:distributed platform;data synchronization;safe and efficient

0? 引? 言

分布式系統(tǒng)架構(gòu)是指由多臺計算機和通信軟件通過計算機網(wǎng)絡(luò)連接組成的結(jié)構(gòu),是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng),具有高度的內(nèi)聚性和透明性。在該系統(tǒng)中一臺服務(wù)器的系統(tǒng)崩潰不會影響到其他的服務(wù)器,且容易部署上線新功能,由于有多臺計算機的計算能力,該系統(tǒng)比其他系統(tǒng)的處理速度更快,正因為分布式系統(tǒng)的的這些優(yōu)點,使其在互聯(lián)網(wǎng)企業(yè)中得到了廣泛的應(yīng)用。但是由于其分布式的特性,也使得各個平臺的數(shù)據(jù)無法與其他平臺共享,不便于統(tǒng)計分析,易產(chǎn)生業(yè)務(wù)上的風(fēng)險,因此需要一個數(shù)據(jù)同步軟件來將各個平臺上的數(shù)據(jù)匯總到一個總平臺,總平臺的數(shù)據(jù)更新也可以及時更新到各個分平臺,從而達到數(shù)據(jù)共享的目的。

作者通過對數(shù)據(jù)同步軟件的分析與設(shè)計,使學(xué)生加深對“面向?qū)ο缶幊蹋ǜ呒墸闭n程相關(guān)知識點的理解與掌握,增強軟件架構(gòu)設(shè)計能力。

1? 系統(tǒng)需求分析

根據(jù)實際需求,將提供更新數(shù)據(jù)的系統(tǒng)稱為更新系統(tǒng),將接收數(shù)據(jù)并更新自身數(shù)據(jù)的系統(tǒng)稱為被更新系統(tǒng),同步軟件需要在兩個系統(tǒng)上都進行部署。軟件主要由掃描模塊、通知模塊、接收通知模塊、接收查詢模塊、數(shù)據(jù)庫操作模塊、配置模塊、日志模塊七個模塊組成。掃描模塊根據(jù)配置文件的配置信息掃描更新系統(tǒng)上指定表是否有符合時間要求的記錄更新,或插入并生成對應(yīng)通知隊列表記錄等待通知;通知模塊根據(jù)通知隊列表記錄及配置信息,向被更新系統(tǒng)上的接收模塊發(fā)送同步數(shù)據(jù),并對相應(yīng)通知隊列記錄進行處理;接收通知模塊用于接收更新系統(tǒng)發(fā)送的同步數(shù)據(jù),并在IP白名單檢查、表白名單檢測、簽名校驗等多重校驗通過后更新至數(shù)據(jù)庫保存;接收查詢模塊用于查詢通知隊列記錄同步狀態(tài),以及掃描模塊是否運行正常;數(shù)據(jù)庫操作模塊負責(zé)數(shù)據(jù)庫相關(guān)增刪改查操作,實現(xiàn)及數(shù)據(jù)庫性能優(yōu)化處理;配置模塊負責(zé)配置文件信息的讀取及修改操作;日志模塊主要負責(zé)記錄通知,及接收模塊中關(guān)鍵點的日志信息,便于在出現(xiàn)問題后及時查找并解決問題。

2? 系統(tǒng)詳細設(shè)計

2.1? 系統(tǒng)功能結(jié)構(gòu)設(shè)計

軟件主要由7個功能模塊組成,功能結(jié)構(gòu)圖如圖1所示,下文將從流程圖及類圖的角度對各個模塊進行闡述說明。

(1)掃描模塊。掃描模塊是一個定時執(zhí)行程序,按照設(shè)定的時間定時啟動、執(zhí)行,然后退出,該模塊部署在更新系統(tǒng)上。掃描模塊根據(jù)設(shè)定的規(guī)則掃描出指定表中符合條件的記錄,并生成對應(yīng)的通知隊列記錄,以便由通知模塊完成數(shù)據(jù)的同步。分布式平臺涉及的業(yè)務(wù)往往具有多變性,短時間內(nèi)某條記錄的狀態(tài)可能發(fā)生多次改變,為了避免由這種短時間內(nèi)記錄多次變化,造成同一條記錄多次被同步的現(xiàn)象,對掃描進行了條件限制,即只有表中當(dāng)前最新的記錄更新時間戳與配置文件中記錄的上次掃描時間戳間的差值大于指定間隔時間時才進行處理,否則不做任何操作,如此可在一定程度上降低資源消耗,提升性能。若需獲取表中當(dāng)前最新的記錄更新時間戳,只需要將上次掃描時間戳作為查詢條件進行搜索,并將結(jié)果按更新時間降序排序即可,結(jié)果集中的第一條記錄中就有所需時間戳。當(dāng)符合條件的記錄都生成對應(yīng)的通知隊列記錄后,需要將配置文件中的上次掃描時間戳更新為本次掃描中記錄的最新更新記錄時間,以避免記錄的重復(fù)同步。模塊功能流程圖如圖2所示。

(2)通知模塊。通知模塊是個生產(chǎn)者—消費者模式程序,部署在更新系統(tǒng)上。生產(chǎn)者程序負責(zé)從通知隊列表中根據(jù)已通知次數(shù)及下次通知時間條件篩選出符合要求的記錄并分配給消費者程序處理,該模式下的生產(chǎn)者只有一個,其每次生產(chǎn)的最大記錄數(shù)可以通過配置文件配置,消費者可以有多個,其數(shù)目也可配置,以此提高并發(fā)處理效率,但是出于對系統(tǒng)的安全及穩(wěn)定性考慮,最大數(shù)目一般不超過1 000。模塊可配置同步指定表中的所有字段或某些字段信息,但是若某字段設(shè)計為非空字段時則必須同步,考慮到實際環(huán)境下被更新系統(tǒng)中待同步的目標(biāo)表的名稱和當(dāng)前被掃描表的名稱可能不一致,對應(yīng)字段也可能不一致,因此被掃描表中需同步字段、待同步目標(biāo)表的名稱以及目標(biāo)表待同步的字段都應(yīng)可以通過配置文件進行設(shè)置,以便接收端能正常更新。由于通知隊列表中只會保存帶同步記錄的主鍵信息,因此還需要利用此主鍵信息去原始表中掃描需要同步的字段及其對應(yīng)數(shù)值信息,并以鍵值對的形式拼接到字符串中,每次同步的記錄數(shù)較多,各個記錄之間以分號隔斷,以便接收模塊拆分解析。根據(jù)配置的地址發(fā)送數(shù)據(jù),再根據(jù)返回的響應(yīng)報文對通知隊列記錄進行處理??紤]到實際更新系統(tǒng)的記錄數(shù)據(jù)量大且增速快,為保證數(shù)據(jù)同步的時效性,在HTTP通信交互實現(xiàn)上采用完成端口異步IO模型實現(xiàn),該模型是Windows平臺下效率最高的網(wǎng)絡(luò)通信模型,本模塊采用該網(wǎng)絡(luò)模型能最大限度地提升同步效率,避免產(chǎn)生性能瓶頸。模塊功能流程圖如圖3所示。

(3)接收通知模塊。接收通知模塊是一個HTTP請求服務(wù)端程序,用于接收并處理各個HTTP請求發(fā)送端發(fā)送的報文,此模塊部署在待更新系統(tǒng)上。為了處理高并發(fā)的HTTP請求,本模塊同樣采用完成端口來實現(xiàn)報文的交互處理。除了效率問題,安全問題也是本模塊需要重點考慮的因素。因此,接收通知模塊在啟動時就將IP白名單、同步表白名單、簽名秘鑰等校驗用信息讀取到內(nèi)存,在收到同步數(shù)據(jù)后首先對來源IP進行白名單校驗,再對待同步的表名進行白名單校驗,然后根據(jù)接口協(xié)議進行簽名校驗,通過后再對數(shù)據(jù)串進行防SQL注入處理,無問題后最后將接收數(shù)據(jù)拼接成SQL語句進行數(shù)據(jù)庫操作,否則不做任何處理,無論是否成功都需按照接口協(xié)議返回相應(yīng)響應(yīng)數(shù)據(jù)。接收通知模塊功能流程圖如圖4所示。

(5)接收查詢模塊。接收查詢模塊也是一個服務(wù)端程序,負責(zé)監(jiān)聽網(wǎng)絡(luò)端口,接收查詢請求并返回結(jié)果數(shù)據(jù)。查詢返回的數(shù)據(jù)有兩種,一種是通知隊列表中未通知和通知失敗的記錄條數(shù),此類數(shù)據(jù)用于監(jiān)控通知模塊是否工作正常,當(dāng)上述兩類記錄達到一定數(shù)目時,就應(yīng)進行檢查,及時發(fā)現(xiàn)并解決問題。其中未通知記錄的定義是:狀態(tài)為未通知且通知次數(shù)等于0,請求時間大于1分鐘的記錄;通知失敗記錄的定義是:通知次數(shù)大于等于6的記錄。另一種返回的數(shù)據(jù)是掃描模塊配置文件中的上次掃描時間戳,通過該時間戳是否正常更新來判斷掃描模塊是否假死。接收查詢模塊功能流程圖如圖5所示。

(6)數(shù)據(jù)庫操作模塊。數(shù)據(jù)庫操作模塊實現(xiàn)與MySQL數(shù)據(jù)庫連接、增刪改查功能以及高并發(fā)情況下性能優(yōu)化處理,相關(guān)類主要有兩個,如圖6所示,一個是CDataBase類,其中封裝了MySQL數(shù)據(jù)庫的基本API函數(shù),實現(xiàn)基本的數(shù)據(jù)庫增刪改查等操作功能。另一個為CDBConncetPool類,該類繼承自CDataBase類,并在其基類基礎(chǔ)上增加了數(shù)據(jù)庫連接池的功能,即在程序啟動時就將數(shù)據(jù)庫連接對象都創(chuàng)建好,并保存到隊列中,直到程序退出再釋放,避免頻繁的進行數(shù)據(jù)庫連接及釋放操作,降低在高并發(fā)的數(shù)據(jù)庫操作時造成性能瓶頸的風(fēng)險,此類技術(shù)在實際工作中應(yīng)用廣泛。

(7)配置及日志模塊。配置模塊主要負責(zé)各功能模塊配置文件信息的讀取與更新,避免將系統(tǒng)參數(shù)都固定在代碼中,造成代碼頻繁修改的問題,其類圖如圖7所示,定義了幾個主要的配置文件操作函數(shù)。

日志模塊用于在關(guān)鍵操作的節(jié)點進行日志的記錄,比如網(wǎng)絡(luò)請求的發(fā)送與接收處、數(shù)據(jù)庫的相關(guān)操作處等,便于分析和解決問題,對后臺程序以及業(yè)務(wù)功能模塊異常時的問題排查及解決有重要作用。日志的級別可配置,分為危險、錯誤、信息、調(diào)試等級別,可根據(jù)需要靈活調(diào)用,日志信息的記錄時間可以精確到毫秒,以便于精確查找問題發(fā)生的時間點,其類圖如圖8所示。

2.2? 系統(tǒng)數(shù)據(jù)庫設(shè)計

軟件主要功能是同步已有表的數(shù)據(jù),未涉及其他業(yè)務(wù),因此設(shè)計的表只有通知隊列記錄表,用于管理指定表的待同步記錄,主要字段有待同步記錄的主鍵信息、已通知次數(shù)、下次通知時間等。

3? 結(jié)? 論

本文分析了分布式平臺數(shù)據(jù)同步軟件的需求,并對軟件設(shè)計進行了詳細描述。若實現(xiàn)后投入使用,可幫助企業(yè)解決分布式架構(gòu)下各個平臺之間的數(shù)據(jù)同步問題,高效安全地完成數(shù)據(jù)匯總,以便統(tǒng)計分析,為企業(yè)決策制定提供依據(jù)。本案例應(yīng)用在了“面向?qū)ο缶幊谈呒墶睂I(yè)課程中,通過講解數(shù)據(jù)同步軟件的分析和設(shè)計過程,促進學(xué)生對知識點的掌握與理解,提高實踐動手能力。

參考文獻:

[1] 吳潔明,方英蘭.軟件工程實例教程 [M].北京:清華大學(xué)出版社,2010.

[2] 王英英.MySQL 8從入門到精通 [M].北京:清華大學(xué)出版社,2019.

[3] 王琦.電子辦稅服務(wù)系統(tǒng)中數(shù)據(jù)同步軟件的設(shè)計與實現(xiàn) [D].南京:南京理工大學(xué),2011.

[4] 羅智華.新時期計算機通信軟件架構(gòu)設(shè)計與分析 [J].數(shù)字通信世界,2015(10):25.

[5] 史陽,楊坤德,楊益新,等.水聲數(shù)據(jù)采集與分析軟件的設(shè)計與實現(xiàn) [J].電聲技術(shù),2012,36(9):49-51+78.

作者簡介:謝劍(1987.06—),男,漢族,湖南長沙人,專任教師,初級職稱,碩士,研究方向:計算機應(yīng)用,圖像處理。