王海濱
摘要:隨著互聯(lián)網(wǎng)時代的來臨,數(shù)據(jù)化時代的不斷推進(jìn),現(xiàn)代社會對信息數(shù)據(jù)的重視程度愈發(fā)提高,如何更加高效、高速的處理海量信息數(shù)據(jù),為用戶提供更加優(yōu)質(zhì)的服務(wù)是許多互聯(lián)網(wǎng)企業(yè)必須要思考的問題,而采用分布式處理方式既能夠緩解運營商的主機(jī)壓力又能夠為用戶提高更加優(yōu)質(zhì)的服務(wù),故該文圍繞著面向大數(shù)據(jù)應(yīng)用的分布式服務(wù)平臺設(shè)計與實現(xiàn)這一主題進(jìn)行闡述,希望能夠以此為大數(shù)據(jù)處理方面的研究提供一份參考資料。
關(guān)鍵詞:大數(shù)據(jù);分布式服務(wù)平臺;設(shè)計與實現(xiàn)
中圖分類號:G642? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)15-0067-02
當(dāng)下隨著互聯(lián)網(wǎng)技術(shù)的不斷成熟,我們可以從互聯(lián)網(wǎng)上找到諸多的信息數(shù)據(jù),而如何從這龐雜的數(shù)據(jù)中找到我們所需要的,如何提升用戶的使用體驗,是許多互聯(lián)網(wǎng)公司提升自身核心競爭力的關(guān)鍵點之一,同時搭建屬于企業(yè)自身的大數(shù)據(jù)應(yīng)用平臺也是許多互聯(lián)網(wǎng)公司努力奮斗的目標(biāo),故本文圍繞著面向大數(shù)據(jù)應(yīng)用的分布式服務(wù)平臺設(shè)計與實現(xiàn)這一主題進(jìn)行了詳細(xì)陳述,具體陳述如下。
1 大數(shù)據(jù)技術(shù)
目前有關(guān)大數(shù)據(jù)尚無明確定義,但來自麥肯錫研究所對于大數(shù)據(jù)的解釋是現(xiàn)如今較為被認(rèn)可的說法之一,該研究所認(rèn)為大數(shù)據(jù)是一種海量數(shù)據(jù)的集合,其數(shù)據(jù)總量非常龐大,根本不是可以依靠少量計算機(jī)就能夠進(jìn)行處理的數(shù)據(jù)量,其具有數(shù)據(jù)總量龐大、類型豐富、數(shù)據(jù)價值密度低的特點。在信息技術(shù)全球化的當(dāng)下,大數(shù)據(jù)的價值堪比工業(yè)時代煤炭的價值,對于現(xiàn)代企業(yè)而言大數(shù)據(jù)技術(shù)是非常富有價值的,通過對這些“煤炭”的挖掘可以為諸多服務(wù)企業(yè)提供精準(zhǔn)銷售,也可以讓許多中小企業(yè)、傳統(tǒng)企業(yè)通過大數(shù)據(jù)技術(shù)實現(xiàn)企業(yè)轉(zhuǎn)型??偠灾S著時代的不斷進(jìn)步,未來大數(shù)據(jù)技術(shù)的不斷成熟,其對于經(jīng)濟(jì)社會的價值體現(xiàn)會愈發(fā)明顯,愈發(fā)重要。
2 國內(nèi)外有關(guān)大數(shù)據(jù)應(yīng)用管理的相關(guān)研究
隨著大數(shù)據(jù)時代的來臨,許多企業(yè)已經(jīng)意識到大數(shù)據(jù)的重要性從而著手對大數(shù)據(jù)管理應(yīng)用進(jìn)行研究,其中Google、Oracle、Microsoft等企業(yè)更是已經(jīng)有了一定的研究成果并投入到實際應(yīng)用當(dāng)中,如由Google企業(yè)開發(fā)的一款名為Map Reduce的計算模型,其就能夠?qū)Υ髷?shù)據(jù)進(jìn)行有效處理,且算模型因其出色的高容錯率、高擴(kuò)展性等優(yōu)點受到眾人的追捧,而脫胎于Map Reduce的Hadoop則更是因為其能夠高效的處理大數(shù)據(jù)作為當(dāng)時處理研究大數(shù)據(jù)的主要途徑,對整個學(xué)術(shù)界和大數(shù)據(jù)市場產(chǎn)生了極大的沖擊,被廣泛用作搭建大數(shù)據(jù)管理的基礎(chǔ)平臺,但隨著科學(xué)技術(shù)的不斷發(fā)展,Hadoop又因為管理大數(shù)據(jù)而造成的計算機(jī)系統(tǒng)高延遲問題而被分布式內(nèi)存中的Key-Value存儲所淘汰,總而言之,大數(shù)據(jù)管理系統(tǒng)在當(dāng)下是十分受人矚目的,且已經(jīng)取得了一定的研究成果,但目前仍然還有著許多的難關(guān)需要不斷的克服,但無論如何大數(shù)據(jù)的外來發(fā)展與應(yīng)用的前景依舊是十分光明的。
3 大數(shù)據(jù)應(yīng)用平臺結(jié)構(gòu)設(shè)計
為了使各企業(yè)能夠從大數(shù)據(jù)中及時地找出自己所需要的數(shù)據(jù),同時也為了緩解服務(wù)器的壓力,設(shè)計大數(shù)據(jù)管理應(yīng)用平臺時可以采用分布式結(jié)構(gòu),通過將數(shù)據(jù)集群進(jìn)行分解,不斷分?jǐn)傇诟髯蛹荷系倪@一結(jié)構(gòu)達(dá)到搭建大數(shù)據(jù)應(yīng)用管理平臺的目的。從結(jié)構(gòu)角度分析可將Hadoop/Spark作為整個大數(shù)據(jù)分布式服務(wù)平臺的核心技術(shù),通過REST協(xié)議實現(xiàn)各服務(wù)器之間的溝通交流,其基本結(jié)構(gòu)如圖1所示。從數(shù)據(jù)存儲的角度來看,將數(shù)據(jù)的儲存使用分布式儲存方式,將一個大的數(shù)據(jù)集群,分門別類地存放于子存儲系統(tǒng)當(dāng)中,在通過子存儲系統(tǒng)將這些數(shù)據(jù)提供給諸多用戶使用,達(dá)到實現(xiàn)優(yōu)化整個大數(shù)據(jù)平臺的存儲查看的效果。通過使用分布式存儲方式的形式,將整個大數(shù)據(jù)應(yīng)用平臺通過將各數(shù)據(jù)進(jìn)行整合分析,使各企業(yè)能夠充分使用企業(yè)內(nèi)部的各存儲設(shè)備,達(dá)到存儲設(shè)備的最大使用率,并方便各企業(yè)對諸多數(shù)據(jù)進(jìn)行分析研究找出其內(nèi)在價值,從而根據(jù)數(shù)據(jù)所提供的消息展開有針對性的營銷策略。
4 系統(tǒng)功能設(shè)計
對于搭建一個可靠的大數(shù)據(jù)應(yīng)用平臺而言光靠合理的結(jié)構(gòu)是不能夠滿足市場的需求的,其不僅需要合理的結(jié)構(gòu)體系,還需要滿足有能夠服務(wù)于大數(shù)據(jù)應(yīng)用平臺的功能,具體功能需求如下:
(1) 應(yīng)用注冊模塊:以注冊Eureka Server為例,當(dāng)大數(shù)據(jù)系統(tǒng)正式應(yīng)用后,用戶通過客戶端進(jìn)行注冊此時注冊信息會上傳至各子服務(wù)器,存放著注冊信息的子服務(wù)器又會向Eureka Server發(fā)送信號,而Eureka Server會以30s為周期對這些注冊信息進(jìn)行處理和儲存。同時在不同的Eureka Server之間則通過數(shù)據(jù)間的交互復(fù)制完成信息的同步。且為了防止因Eureka Server出現(xiàn)問題而導(dǎo)致數(shù)據(jù)丟失,Eureka還設(shè)立了一份保險裝置,即提供了客戶端緩存機(jī)制,這樣即使所有的Eureka Server全部出現(xiàn)問題,數(shù)據(jù)全部丟失,客戶端所緩存的信息依舊可以使用其他服務(wù)的API。
(2) 路由網(wǎng)關(guān)模塊:路由網(wǎng)關(guān)的核心是一系列的filters,如Authentication、Load Shedding,當(dāng)客戶端前的用戶向大數(shù)據(jù)應(yīng)用平臺發(fā)起申請時,路由網(wǎng)關(guān)首先會檢測該用戶是否有權(quán)限進(jìn)行申請?zhí)幚?,若有路由網(wǎng)關(guān)就會自動將該申請發(fā)送至對應(yīng)的服務(wù)地址上,進(jìn)行專項處理,若無權(quán)限則會拒絕該申請,自動將頁面返回登錄界面。同時如果服務(wù)有集群則進(jìn)行負(fù)載均衡,默認(rèn)是輪詢的方式。
(3) 訪問控制模塊:是整個服務(wù)平臺對各用戶的訪問進(jìn)行控制管理的一個模塊,對訪問用戶的身份進(jìn)行驗證,進(jìn)行授權(quán)。對每個點擊登錄的用戶返回一個JWT網(wǎng)頁令牌給用戶,實現(xiàn)給予用戶權(quán)限和身份識別,從而實現(xiàn)無狀態(tài)、分布式的Web應(yīng)用授權(quán),從而對用戶的訪問進(jìn)行處理驗證。
(4) 用戶和服務(wù)模塊:系統(tǒng)需要分別開放一個restful接口,讓用戶和第三方通過post、delete、put、post等操作指令獲取所需要的數(shù)據(jù)信息,從而達(dá)到實現(xiàn)操作和管理的目的,且這兩者是有所區(qū)別的,前者是通過讓用戶進(jìn)行主動搜索尋找到用戶自身所需要的數(shù)據(jù)資源,后者是將對應(yīng)的大數(shù)據(jù)信息傳送至第三方服務(wù)。
(5) 服務(wù)質(zhì)量模塊:這一模塊是為了保障用戶在使用大數(shù)據(jù)服務(wù)時能夠有一個優(yōu)質(zhì)的使用體驗,從而增加用戶二次使用概率的一個模塊。傳統(tǒng)模式下BIO用戶每發(fā)起一次搜索,每點開一個連接,服務(wù)器都需要對應(yīng)地創(chuàng)造一個單獨的線程進(jìn)行維護(hù)回應(yīng),這對服務(wù)器產(chǎn)生了較大的壓力,也造成了許多不必要的資料浪費,對用戶的回應(yīng)效率也較慢,導(dǎo)致了用戶的體驗較差。因此在搭建服務(wù)質(zhì)量模塊時可以使用Netty,這是一個基于Reactor設(shè)計模式事件驅(qū)動模型的網(wǎng)絡(luò)編程框架。使用NIO模式的用戶避免了每點開一個鏈接就會產(chǎn)生一個新的線程的情況,可以只使一個線程就能夠應(yīng)對多個鏈接,極大的增加了回應(yīng)用戶的效率,減少了資源的浪費。
(6) 第三方服務(wù)模塊:為了符合市場需求,大數(shù)據(jù)應(yīng)用平臺的設(shè)計必然要有著第三方服務(wù)模塊,就如七牛云存儲,除了本身提供的資源存儲管理服務(wù),現(xiàn)還有這第三方支付服務(wù),如銀聯(lián)、支付寶、微信等。
5 系統(tǒng)實現(xiàn)與應(yīng)用
為了實現(xiàn)系統(tǒng)的搭建和應(yīng)用,除了要完成上述內(nèi)容以外還要完成前后端分離和系統(tǒng)緩存一致性,才能真正實現(xiàn)大數(shù)據(jù)應(yīng)用的分布式服務(wù)平臺搭建。
5.1 前后端分離技術(shù)實現(xiàn)
一個成熟的,搭建完善的大數(shù)據(jù)應(yīng)用平臺其前端和后端必然是分離的,這已經(jīng)成了互聯(lián)網(wǎng)界項目開發(fā)的標(biāo)準(zhǔn)模式,前后端分離不僅可以為之后的平臺結(jié)構(gòu)優(yōu)化、多端化服務(wù)打下良好的基礎(chǔ),還因為對于大數(shù)據(jù)應(yīng)用平臺而言最佳的結(jié)構(gòu)形式是分布式結(jié)構(gòu),而采用前后端分離更加方便這種結(jié)果的搭建,同時也是的開發(fā)人員能夠全力投入到更加適合自身的工作之中,做到術(shù)業(yè)有專攻,提升平臺的搭建速度和質(zhì)量。故在進(jìn)行前后端分離時,前端可以采用Vue,以單向數(shù)據(jù)流的狀態(tài)管理模式進(jìn)行構(gòu)建,后端則用Spring Cloud系列的技術(shù)對服務(wù)進(jìn)行分模塊開發(fā),而前后端對外則使用統(tǒng)一網(wǎng)關(guān)的形式提供接口,將前端的接口通過mock數(shù)據(jù)源轉(zhuǎn)接到后端的接口即可完成前后端分離的實現(xiàn)。
5.2 保障系統(tǒng)緩存一致性實現(xiàn)
因為大數(shù)據(jù)應(yīng)用平臺搭建結(jié)構(gòu)模式采用的是分布式模式,其數(shù)據(jù)整體具有較強(qiáng)的實時性,而為了優(yōu)化用戶體驗,使得大數(shù)據(jù)應(yīng)用系統(tǒng)能夠為顧客提供更加高效、優(yōu)質(zhì)的服務(wù),還需要保障系統(tǒng)緩存的一致性,而要做到這一點還需要注意以下內(nèi)容:1)要設(shè)計一個內(nèi)存隊列保存對數(shù)據(jù)的操作;2)及時清除服務(wù)器中不必要的緩存,避免這些緩存侵占過多的服務(wù)器資源,需要注意的是在需要更新數(shù)據(jù)庫時需要優(yōu)先刪除緩存在進(jìn)行更新;3)優(yōu)化整體操作、整體運行,刪除無意義的、重復(fù)的操作;4)同步等待緩存更新完成,從分布式存儲系統(tǒng)中讀取最新數(shù)值,再寫入緩存中;5)若用戶進(jìn)行數(shù)據(jù)請求時,等待的時間過長則需要對舊值進(jìn)行清理,保證緩存的一致性,以免請求發(fā)生沖突。
6 結(jié)束語
綜上所述,隨著互聯(lián)網(wǎng)時代的來臨,數(shù)據(jù)的價值愈發(fā)被人們所重視,我們身邊的大多數(shù)信息都已經(jīng)數(shù)據(jù)化,我們在網(wǎng)上可以接觸愈來愈多的信息數(shù)據(jù),而將這些海量的數(shù)據(jù)信息進(jìn)行統(tǒng)籌規(guī)劃實際應(yīng)用,挖掘出這些信息潛在價值就是面向大數(shù)據(jù)應(yīng)用平臺搭建的目的。故本文介紹了大數(shù)據(jù)技術(shù),分享了國內(nèi)外有關(guān)大數(shù)據(jù)應(yīng)用管理的相關(guān)研究,設(shè)計了面向大數(shù)據(jù)應(yīng)用的分布式服務(wù)的結(jié)構(gòu)設(shè)計、功能設(shè)計以及前后端分離,并保障了系統(tǒng)緩存的一致性,以求能夠?qū)崿F(xiàn)大數(shù)據(jù)應(yīng)用平臺的搭建。
參考文獻(xiàn):
[1] 楊秋鴻,潘曉衡,趙鐵柱,等.面向大數(shù)據(jù)應(yīng)用的分布式服務(wù)平臺設(shè)計與實現(xiàn)[J].東莞理工學(xué)院學(xué)報,2020,27(1):34-38.
[2] 董佩.大數(shù)據(jù)環(huán)境下面向電信行業(yè)數(shù)據(jù)管理平臺的設(shè)計與實現(xiàn)[D].漳州:閩南師范大學(xué),2016.
[3] 趙冰峰.面向集成應(yīng)用的不動產(chǎn)信息服務(wù)平臺設(shè)計與實現(xiàn)[D].徐州:中國礦業(yè)大學(xué),2017.
[4] 吳東堯.面向大數(shù)據(jù)的分布式數(shù)據(jù)流處理引擎設(shè)計與實現(xiàn)[D].北京:中國科學(xué)院大學(xué),2012.
[5] 安秀成.一個基于WINDOWS NT平臺的分布式面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)的設(shè)計與實現(xiàn)[D].遼寧:東北大學(xué),1998.
【通聯(lián)編輯:代影】