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

?

基于Dubbo框架的分布式視頻網(wǎng)站架構(gòu)設(shè)計(jì)

2018-10-29 11:09宋萬(wàn)洋
軟件導(dǎo)刊 2018年8期
關(guān)鍵詞:視頻網(wǎng)站系統(tǒng)架構(gòu)

宋萬(wàn)洋

摘要:網(wǎng)站系統(tǒng)架構(gòu)對(duì)網(wǎng)站可靠性、服務(wù)質(zhì)量等起著至關(guān)重要的作用,為了提供更可靠、更安全、更穩(wěn)定的服務(wù),分布式服務(wù)架構(gòu)已成為當(dāng)前中大型網(wǎng)站常用的架構(gòu)方式。在分析對(duì)比分布式服務(wù)架構(gòu)與服務(wù)器集群架構(gòu)、Web Service架構(gòu)時(shí),詳細(xì)介紹了作為分布式服務(wù)架構(gòu)中代表Dubbo框架的技術(shù)原理及工作過(guò)程。通過(guò)分析視頻網(wǎng)站業(yè)務(wù)需求,設(shè)計(jì)并使用Dubbo框架對(duì)其進(jìn)行架構(gòu),用視頻網(wǎng)站案例對(duì)Dubbo框架架構(gòu)實(shí)施過(guò)程進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果證明,使用Dubbo框架架構(gòu)分布式網(wǎng)站具有更優(yōu)的性能與擴(kuò)展性。

關(guān)鍵詞:Dubbo;視頻網(wǎng)站;分布式框架;系統(tǒng)架構(gòu)

DOIDOI:10.11907/rjdk.181098

中圖分類(lèi)號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)008-0137-04

英文摘要Abstract:The architecture of website plays a crucial role in website service reliability and service quality.In order to provide more reliable,safer and stabler services,the distributed service architecture has become a common way for large-scale web sites.Based on the analysis and comparison of the advantages of distributed service architecture,server cluster architecture and Web Service architecture,the technology principle and working process of Dubbo framework as a representative of distributed service architecture are introduced in detail.Analyzing the business needs of video websites,we design and construct the Dubbo framework to build the website,and illustrate the implementation process of Dubbo framework with video cases.The results of the actual architecture deployment prove that distributed websites with the Dubbo framework have better performance and more flexible scalability.

英文關(guān)鍵詞Key Words:Dubbo; video website; distributed framework; system architecture

0 引言

隨著信息技術(shù)與互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,近年來(lái),互聯(lián)網(wǎng)資源量與互聯(lián)網(wǎng)用戶(hù)量呈爆炸式增長(zhǎng)。隨著用戶(hù)量增加,網(wǎng)站承受能力成為網(wǎng)站發(fā)展期的瓶頸。因此當(dāng)前中大型網(wǎng)站架構(gòu)優(yōu)化成為重點(diǎn)研究方向[1]。

服務(wù)器集群架構(gòu)模式是早期網(wǎng)絡(luò)系統(tǒng)架構(gòu)中常用方式之一[2],服務(wù)器負(fù)責(zé)資源服務(wù)提供,客戶(hù)通過(guò)請(qǐng)求服務(wù)器而獲取服務(wù),這種模式是一種比較簡(jiǎn)單且實(shí)用的分布式架構(gòu)方案,但是在這種模式中,某種服務(wù)只能由集中式進(jìn)程提供服務(wù),服務(wù)穩(wěn)定性受服務(wù)器負(fù)載能力與網(wǎng)絡(luò)帶寬影響,具有一定局限性。以Web Service服務(wù)為代表的垂直應(yīng)用框架,其將應(yīng)用的前后端分離,服務(wù)提供方以HTTP方式提供服務(wù)[3],調(diào)用時(shí)不受語(yǔ)音限制。但是其采用SOAP(Simple Object Access Protocol)作為數(shù)據(jù)傳輸協(xié)議,導(dǎo)致對(duì)調(diào)用量大、結(jié)構(gòu)復(fù)雜的調(diào)用對(duì)象支持較差。研究與應(yīng)用比較廣泛的分布式服務(wù)框架解決了以上架構(gòu)方式問(wèn)題[4],其可以將應(yīng)用提煉分離,形成獨(dú)立的應(yīng)用服務(wù),且將服務(wù)匯集成服務(wù)中心,以服務(wù)中心的形式為前端業(yè)務(wù)調(diào)用提供服務(wù),提高系統(tǒng)的可靠性與靈活性。

1 Dubbo框架架構(gòu)技術(shù)

分布式架構(gòu)是為了解決單一節(jié)點(diǎn)資源不足或服務(wù)不完善而開(kāi)發(fā)的,其將一個(gè)集中式系統(tǒng)分割成多個(gè)互相獨(dú)立的功能服務(wù)模塊,利用網(wǎng)絡(luò)服務(wù)調(diào)用技術(shù)實(shí)現(xiàn)系統(tǒng)功能。與傳統(tǒng)集中式架構(gòu)方式相比,分布式架構(gòu)具有高并發(fā)性、服務(wù)異構(gòu)性[5]、服務(wù)可擴(kuò)展性、數(shù)據(jù)安全性[6]等優(yōu)點(diǎn)。

Dubbo框架是由阿里巴巴集團(tuán)開(kāi)發(fā)的一款分布式系統(tǒng)服務(wù)框架,它將系統(tǒng)分割成垂直服務(wù)層[4],各層獨(dú)立提供服務(wù),并通過(guò)遠(yuǎn)程調(diào)用協(xié)議實(shí)現(xiàn)系統(tǒng)服務(wù)的輸入與輸出,從而幫助系統(tǒng)服務(wù)提供高性能與透明化的遠(yuǎn)程服務(wù)調(diào)用。

1.1 Dubbo框架核心技術(shù)

Dubbo框架通過(guò)遠(yuǎn)程方法調(diào)用與網(wǎng)絡(luò)通信封裝,利用服務(wù)中心注冊(cè)方法,進(jìn)行本地調(diào)用與遠(yuǎn)程調(diào)用,從而實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)[7]。其核心技術(shù)可以概括為以下3個(gè)方面:

(1)遠(yuǎn)程通訊:封裝遠(yuǎn)程方法,使遠(yuǎn)程方法調(diào)用透明化,調(diào)用時(shí)只需簡(jiǎn)單配置調(diào)用環(huán)境,減少開(kāi)發(fā)過(guò)程中調(diào)用,提高系統(tǒng)安全性。

(2)集群容錯(cuò):通過(guò)分散程序模塊實(shí)現(xiàn)方法,冗余備份關(guān)鍵模塊,基于接口方法調(diào)用等技術(shù),幫助系統(tǒng)在系統(tǒng)部署過(guò)程中實(shí)現(xiàn)基于軟件負(fù)載均衡、系統(tǒng)失敗容錯(cuò)等功能[8]。

(3)自動(dòng)發(fā)現(xiàn):使用服務(wù)中心注冊(cè)機(jī)制,中心記錄服務(wù)提供方信息,并將信息提供給服務(wù)調(diào)用方,其僅需這些信息即可調(diào)用,方便系統(tǒng)功能調(diào)整及使用。

1.2 Dubbo框架工作過(guò)程

Dubbo框架工作過(guò)程如圖1所示。

系統(tǒng)運(yùn)行時(shí),服務(wù)提供方與服務(wù)調(diào)用方分離運(yùn)行,當(dāng)服務(wù)運(yùn)行容器中服務(wù)提供方開(kāi)始提供服務(wù)時(shí),向注冊(cè)中心注冊(cè)使用者的服務(wù)、地址、調(diào)用方式等基本信息。服務(wù)調(diào)用方在需要調(diào)用服務(wù)時(shí),向注冊(cè)中心申請(qǐng)調(diào)用服務(wù),注冊(cè)中心將服務(wù)提供者信息返回給調(diào)用者,通過(guò)這些信息調(diào)用服務(wù)運(yùn)行容器中的服務(wù)。服務(wù)運(yùn)行過(guò)程中,監(jiān)控機(jī)構(gòu)監(jiān)控雙方情況,定期統(tǒng)計(jì)服務(wù)調(diào)用次數(shù)與服務(wù)調(diào)用時(shí)間等信息,以保證服務(wù)持續(xù)運(yùn)行。如果服務(wù)提供者對(duì)服務(wù)有增減或變更,會(huì)及時(shí)通知注冊(cè)中心,由注冊(cè)中心與服務(wù)運(yùn)行容器協(xié)作提供集群容錯(cuò)、軟負(fù)載均衡等功能。

1.3 Dubbo框架特點(diǎn)

(1)可靠性:服務(wù)中心提供服務(wù)注冊(cè)功能,并與服務(wù)提供方保持長(zhǎng)連接狀態(tài),保證注冊(cè)服務(wù)的準(zhǔn)確性與可靠性;服務(wù)提供方為服務(wù)調(diào)用方提供服務(wù)時(shí),雙方采用Socket通信長(zhǎng)連接方式保持服務(wù),且定期向監(jiān)控中心報(bào)告狀態(tài),從而保證服務(wù)的及時(shí)性與可靠性[9]。

(2)靈活性:服務(wù)提供方根據(jù)系統(tǒng)需要及開(kāi)發(fā)進(jìn)度靈活地向注冊(cè)中心注冊(cè)新服務(wù)或部署新機(jī)器;只要符合注冊(cè)中心規(guī)定并通過(guò)認(rèn)證的服務(wù)調(diào)用方都可以靈活地從注冊(cè)中心申請(qǐng)調(diào)用服務(wù)。

(3)易用性:使用Dubbo框架部署分布式網(wǎng)站時(shí),只需在Spring框架中進(jìn)行簡(jiǎn)單的服務(wù)配置,可以將服務(wù)調(diào)用透明化,降低系統(tǒng)開(kāi)發(fā)的難度[10]。

2 分布式網(wǎng)站架構(gòu)設(shè)計(jì)

視頻因其具有形式新穎、傳播速度快、簡(jiǎn)單易懂、良好交互等特點(diǎn)成為當(dāng)前主要的娛樂(lè)方式。近幾年,在線視頻網(wǎng)站已成為當(dāng)前互聯(lián)網(wǎng)技術(shù)研究熱點(diǎn)[11]。用戶(hù)可以將個(gè)人視頻上傳至視頻網(wǎng)站,并可以搜索、觀看、點(diǎn)評(píng)網(wǎng)站中視頻。由于視頻占用存儲(chǔ)空間較大、視頻量與用戶(hù)量眾多、視頻網(wǎng)站接入設(shè)備多樣等因素,采用分布式架構(gòu)方式設(shè)計(jì)并實(shí)現(xiàn)該視頻網(wǎng)站[12]。

2.1 系統(tǒng)需求分析

視頻網(wǎng)站業(yè)務(wù)功能需求分為以下幾個(gè)模塊:①視頻瀏覽模塊。用戶(hù)可以在本模塊瀏覽播放視頻,且可以瀏覽視頻列表或使用搜索欄查找喜歡的視頻[13];②編輯視頻模塊。用戶(hù)可以在本模塊執(zhí)行上傳視頻、下載視頻、點(diǎn)評(píng)視頻等操作,有管理員權(quán)限的用戶(hù)可以刪除視頻,對(duì)視頻添加描述、分類(lèi)等;③修改用戶(hù)信息模塊。用戶(hù)登錄可以修改用戶(hù)基本信息,管理員在本模塊可以查詢(xún)用戶(hù)、添加用戶(hù)、刪除用戶(hù),標(biāo)記用戶(hù)信息修改用戶(hù)權(quán)限;④注冊(cè)模塊。未注冊(cè)用戶(hù)需要在模塊中填寫(xiě)用戶(hù)信息,進(jìn)行注冊(cè)操作,根據(jù)視頻網(wǎng)站業(yè)務(wù)功能描述,可以將用戶(hù)劃分為管理員、注冊(cè)會(huì)員、游客3種。視頻網(wǎng)站業(yè)務(wù)功能如圖2所示。

視頻網(wǎng)站界面清晰,功能簡(jiǎn)單易學(xué)。其具有可靠性,網(wǎng)站保證在一段持續(xù)較長(zhǎng)時(shí)間內(nèi)為用戶(hù)提供持續(xù)穩(wěn)定的服務(wù)[14];其具有一定性,可以保證同一時(shí)間為500用戶(hù)提供視頻播放能力;其具有較大存儲(chǔ)空間,以保證用戶(hù)上傳視頻保存;其具有可擴(kuò)展性,方便網(wǎng)站后續(xù)功能擴(kuò)充[15]。如果數(shù)據(jù)量增速過(guò)快,可以增加服務(wù)器節(jié)點(diǎn)降低網(wǎng)站單個(gè)服務(wù)器的負(fù)載壓力。

2.2 系統(tǒng)架構(gòu)設(shè)計(jì)

根據(jù)以上對(duì)視頻網(wǎng)站需求描述,視頻網(wǎng)站采用基于Dubbo框架分布式架構(gòu)設(shè)計(jì),視頻網(wǎng)站系統(tǒng)架構(gòu)設(shè)計(jì)如圖3所示。

整體網(wǎng)站系統(tǒng)業(yè)務(wù)分為耦合度較低的用戶(hù)交互部分與業(yè)務(wù)服務(wù)部分。業(yè)務(wù)服務(wù)部分可以按照具體業(yè)務(wù)內(nèi)容分為多個(gè)模塊,方便網(wǎng)站業(yè)務(wù)調(diào)整與擴(kuò)充。注冊(cè)中心由廣泛應(yīng)用的zookeeper模塊負(fù)責(zé),監(jiān)控中心使用Dubbo框架自帶的monitor center模塊。在保證網(wǎng)站系統(tǒng)穩(wěn)定運(yùn)行同時(shí),提高系統(tǒng)的可靠性與可擴(kuò)展性。

2.3 系統(tǒng)關(guān)鍵技術(shù)實(shí)現(xiàn)

(1)下載zookeeper組件、Dubbo框架并安裝。

(4)啟動(dòng)Dubbo框架。

經(jīng)過(guò)以上配置,Dubbo框架已經(jīng)基本搭建完成,使用時(shí)啟動(dòng)順序?yàn)橄葐?dòng)zookeeper注冊(cè)中心,再啟動(dòng)Tomcat服務(wù)器。在瀏覽器中輸入Tomcat的訪問(wèn)路徑(默認(rèn)為http://localhost:8088),如果可以在網(wǎng)站中打開(kāi)圖4頁(yè)面,即說(shuō)明Dubbo框架可以使用。如圖4所示可以看到當(dāng)前有幾個(gè)服務(wù)注冊(cè)到中心,有幾個(gè)調(diào)用者在申請(qǐng)服務(wù)。通過(guò)簡(jiǎn)單配置,在不干擾網(wǎng)站系統(tǒng)業(yè)務(wù)的前提下,即可將網(wǎng)站架構(gòu)部署成為分布式架構(gòu)。當(dāng)網(wǎng)站需要增加新服務(wù)支持時(shí),只需在zookeeper服務(wù)中心注冊(cè)即可。

(5)網(wǎng)站服務(wù)過(guò)程。

使用Dubbo框架架構(gòu)部署視頻網(wǎng)站系統(tǒng)啟動(dòng)之后,各項(xiàng)功能服務(wù)獨(dú)立運(yùn)行并向注冊(cè)中心注冊(cè)以備使用,調(diào)用服務(wù)時(shí)使用長(zhǎng)連接方式提供服務(wù)。例如:會(huì)員小明在網(wǎng)站搜索視頻順序如圖5所示。

由圖5可知,在服務(wù)過(guò)程中,視頻搜索服務(wù)通過(guò)消息調(diào)用方式為前臺(tái)模塊提供服務(wù),雙方向監(jiān)控中心匯報(bào)服務(wù)運(yùn)行情況。使得網(wǎng)站數(shù)據(jù)互相分離,保證數(shù)據(jù)安全。當(dāng)視頻網(wǎng)站有服務(wù)擴(kuò)充或新業(yè)務(wù)增加時(shí),可以在網(wǎng)站系統(tǒng)不停機(jī)的情況下,直接向注冊(cè)中心注冊(cè)擴(kuò)充,以保證視頻網(wǎng)站系統(tǒng)的可靠性與可擴(kuò)展性。

3 結(jié)語(yǔ)

分布式系統(tǒng)架構(gòu)是當(dāng)前中大型網(wǎng)站常用的架構(gòu)方式,通過(guò)分布式架構(gòu)可以使網(wǎng)站具有并發(fā)性、可靠性、安全性與可擴(kuò)展性等優(yōu)勢(shì)。本文通過(guò)架構(gòu)設(shè)計(jì)視頻網(wǎng)站案例介紹了Dubbo框架特點(diǎn)與使用方法,并在實(shí)際架構(gòu)部署中加以驗(yàn)證,與原始集中式部署方式相比,使用Dubbo框架架構(gòu)的視頻網(wǎng)站具有更高的查詢(xún)播放速度,且能夠更加便捷的修改添加網(wǎng)站功能。

參考文獻(xiàn):

[1] 崔星燦,禹曉輝,劉洋,等.分布式流處理技術(shù)綜述[J].計(jì)算機(jī)研究與發(fā)展,2015,52(02):318-332.

[2] 韓曾帆.行業(yè)應(yīng)用網(wǎng)關(guān)集群架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):東北大學(xué),2008.

[3] 龔瑞琴,畢利.基于Web Service的Android技術(shù)應(yīng)用研究[J].電子技術(shù)應(yīng)用,2014,40(01):134-136.

[4] 陶明.一種分布式服務(wù)框架的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2013.

[5] 唐婧,蔣毅.以.net為基礎(chǔ)的三層架構(gòu)分布式系統(tǒng)設(shè)計(jì)[J].電腦開(kāi)發(fā)與應(yīng)用,2012,25(07):37-39+45.

[6] 何騰蛟.分布式系統(tǒng)測(cè)試模型與框架的研究與應(yīng)用[D].成都:電子科技大學(xué),2009.

[7] 李磊,李娟.Dubbo服務(wù)框架技術(shù)在學(xué)習(xí)系統(tǒng)開(kāi)發(fā)中的應(yīng)用與實(shí)踐[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(06):244-248.

[8] 劉先紡.基于Dubbo的網(wǎng)上訂餐系統(tǒng)[D].廣州:華南理工大學(xué),2016.

[9] 陳曉棟.基于Dubbo分布式框架的信用卡無(wú)卡大額分期系統(tǒng)設(shè)計(jì)[J].信息與電腦:理論版,2017(07):132-135.

[10] 李磊,李娟.Dubbo服務(wù)框架技術(shù)在學(xué)習(xí)系統(tǒng)開(kāi)發(fā)中的應(yīng)用與實(shí)踐[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(06):244-248.

[11] 朱鋒.基于SSH的在線視頻網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2015.

[12] 翟金亭,吳欽卿.基于Dubbo框架的視頻分享系統(tǒng)分析[J].中國(guó)新通信,2016,18(11):22-23.

[13] 張慶慶.基于Web的視頻點(diǎn)播系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2011.

[14] 徐悅軒.基于Spring技術(shù)的大型視頻網(wǎng)站后臺(tái)上傳系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京大學(xué),2014.

[15] 張莉.圖書(shū)館流媒體視頻點(diǎn)播系統(tǒng)構(gòu)架詳解[J].現(xiàn)代情報(bào),2005(05):128-131.

(責(zé)任編輯:劉亭亭)

猜你喜歡
視頻網(wǎng)站系統(tǒng)架構(gòu)
我國(guó)當(dāng)前視頻網(wǎng)站自制脫口秀節(jié)目的現(xiàn)狀與發(fā)展對(duì)策研究
我國(guó)視頻網(wǎng)站自制節(jié)目的發(fā)展淺析
奉节县| 沙河市| 新巴尔虎右旗| 合阳县| 大方县| 金溪县| 诸暨市| 阆中市| 承德市| 禹州市| 洛隆县| 涞源县| 和顺县| 如东县| 弋阳县| 卢氏县| 永福县| 巢湖市| 翼城县| 安福县| 磐石市| 印江| 宁安市| 伊宁市| 南华县| 天长市| 凤山市| 桐庐县| 江达县| 汤原县| 华阴市| 芮城县| 宁波市| 永兴县| 伽师县| 晋中市| 马鞍山市| 临澧县| 石城县| 长兴县| 临西县|