宋萬洋

摘要:網站系統架構對網站可靠性、服務質量等起著至關重要的作用,為了提供更可靠、更安全、更穩定的服務,分布式服務架構已成為當前中大型網站常用的架構方式。在分析對比分布式服務架構與服務器集群架構、Web Service架構時,詳細介紹了作為分布式服務架構中代表Dubbo框架的技術原理及工作過程。通過分析視頻網站業務需求,設計并使用Dubbo框架對其進行架構,用視頻網站案例對Dubbo框架架構實施過程進行了實驗。實驗結果證明,使用Dubbo框架架構分布式網站具有更優的性能與擴展性。
關鍵詞:Dubbo;視頻網站;分布式框架;系統架構
DOIDOI:10.11907/rjdk.181098
中圖分類號:TP319
文獻標識碼:A 文章編號: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.
英文關鍵詞Key Words:Dubbo; video website; distributed framework; system architecture
0 引言
隨著信息技術與互聯網技術的飛速發展,近年來,互聯網資源量與互聯網用戶量呈爆炸式增長。隨著用戶量增加,網站承受能力成為網站發展期的瓶頸。因此當前中大型網站架構優化成為重點研究方向[1]。
服務器集群架構模式是早期網絡系統架構中常用方式之一[2],服務器負責資源服務提供,客戶通過請求服務器而獲取服務,這種模式是一種比較簡單且實用的分布式架構方案,但是在這種模式中,某種服務只能由集中式進程提供服務,服務穩定性受服務器負載能力與網絡帶寬影響,具有一定局限性。以Web Service服務為代表的垂直應用框架,其將應用的前后端分離,服務提供方以HTTP方式提供服務[3],調用時不受語音限制。但是其采用SOAP(Simple Object Access Protocol)作為數據傳輸協議,導致對調用量大、結構復雜的調用對象支持較差。研究與應用比較廣泛的分布式服務框架解決了以上架構方式問題[4],其可以將應用提煉分離,形成獨立的應用服務,且將服務匯集成服務中心,以服務中心的形式為前端業務調用提供服務,提高系統的可靠性與靈活性。
1 Dubbo框架架構技術
分布式架構是為了解決單一節點資源不足或服務不完善而開發的,其將一個集中式系統分割成多個互相獨立的功能服務模塊,利用網絡服務調用技術實現系統功能。與傳統集中式架構方式相比,分布式架構具有高并發性、服務異構性[5]、服務可擴展性、數據安全性[6]等優點。
Dubbo框架是由阿里巴巴集團開發的一款分布式系統服務框架,它將系統分割成垂直服務層[4],各層獨立提供服務,并通過遠程調用協議實現系統服務的輸入與輸出,從而幫助系統服務提供高性能與透明化的遠程服務調用。
1.1 Dubbo框架核心技術
Dubbo框架通過遠程方法調用與網絡通信封裝,利用服務中心注冊方法,進行本地調用與遠程調用,從而實現系統設計與開發[7]。其核心技術可以概括為以下3個方面:
(1)遠程通訊:封裝遠程方法,使遠程方法調用透明化,調用時只需簡單配置調用環境,減少開發過程中調用,提高系統安全性。
(2)集群容錯:通過分散程序模塊實現方法,冗余備份關鍵模塊,基于接口方法調用等技術,幫助系統在系統部署過程中實現基于軟件負載均衡、系統失敗容錯等功能[8]。
(3)自動發現:使用服務中心注冊機制,中心記錄服務提供方信息,并將信息提供給服務調用方,其僅需這些信息即可調用,方便系統功能調整及使用。
1.2 Dubbo框架工作過程
Dubbo框架工作過程如圖1所示。
系統運行時,服務提供方與服務調用方分離運行,當服務運行容器中服務提供方開始提供服務時,向注冊中心注冊使用者的服務、地址、調用方式等基本信息。服務調用方在需要調用服務時,向注冊中心申請調用服務,注冊中心將服務提供者信息返回給調用者,通過這些信息調用服務運行容器中的服務。服務運行過程中,監控機構監控雙方情況,定期統計服務調用次數與服務調用時間等信息,以保證服務持續運行。如果服務提供者對服務有增減或變更,會及時通知注冊中心,由注冊中心與服務運行容器協作提供集群容錯、軟負載均衡等功能。
1.3 Dubbo框架特點
(1)可靠性:服務中心提供服務注冊功能,并與服務提供方保持長連接狀態,保證注冊服務的準確性與可靠性;服務提供方為服務調用方提供服務時,雙方采用Socket通信長連接方式保持服務,且定期向監控中心報告狀態,從而保證服務的及時性與可靠性[9]。
(2)靈活性:服務提供方根據系統需要及開發進度靈活地向注冊中心注冊新服務或部署新機器;只要符合注冊中心規定并通過認證的服務調用方都可以靈活地從注冊中心申請調用服務。
(3)易用性:使用Dubbo框架部署分布式網站時,只需在Spring框架中進行簡單的服務配置,可以將服務調用透明化,降低系統開發的難度[10]。
2 分布式網站架構設計
視頻因其具有形式新穎、傳播速度快、簡單易懂、良好交互等特點成為當前主要的娛樂方式。近幾年,在線視頻網站已成為當前互聯網技術研究熱點[11]。用戶可以將個人視頻上傳至視頻網站,并可以搜索、觀看、點評網站中視頻。由于視頻占用存儲空間較大、視頻量與用戶量眾多、視頻網站接入設備多樣等因素,采用分布式架構方式設計并實現該視頻網站[12]。
2.1 系統需求分析
視頻網站業務功能需求分為以下幾個模塊:①視頻瀏覽模塊。用戶可以在本模塊瀏覽播放視頻,且可以瀏覽視頻列表或使用搜索欄查找喜歡的視頻[13];②編輯視頻模塊。用戶可以在本模塊執行上傳視頻、下載視頻、點評視頻等操作,有管理員權限的用戶可以刪除視頻,對視頻添加描述、分類等;③修改用戶信息模塊。用戶登錄可以修改用戶基本信息,管理員在本模塊可以查詢用戶、添加用戶、刪除用戶,標記用戶信息修改用戶權限;④注冊模塊。未注冊用戶需要在模塊中填寫用戶信息,進行注冊操作,根據視頻網站業務功能描述,可以將用戶劃分為管理員、注冊會員、游客3種。視頻網站業務功能如圖2所示。
視頻網站界面清晰,功能簡單易學。其具有可靠性,網站保證在一段持續較長時間內為用戶提供持續穩定的服務[14];其具有一定性,可以保證同一時間為500用戶提供視頻播放能力;其具有較大存儲空間,以保證用戶上傳視頻保存;其具有可擴展性,方便網站后續功能擴充[15]。如果數據量增速過快,可以增加服務器節點降低網站單個服務器的負載壓力。
2.2 系統架構設計
根據以上對視頻網站需求描述,視頻網站采用基于Dubbo框架分布式架構設計,視頻網站系統架構設計如圖3所示。
整體網站系統業務分為耦合度較低的用戶交互部分與業務服務部分。業務服務部分可以按照具體業務內容分為多個模塊,方便網站業務調整與擴充。注冊中心由廣泛應用的zookeeper模塊負責,監控中心使用Dubbo框架自帶的monitor center模塊。在保證網站系統穩定運行同時,提高系統的可靠性與可擴展性。
2.3 系統關鍵技術實現
(1)下載zookeeper組件、Dubbo框架并安裝。
(4)啟動Dubbo框架。
經過以上配置,Dubbo框架已經基本搭建完成,使用時啟動順序為先啟動zookeeper注冊中心,再啟動Tomcat服務器。在瀏覽器中輸入Tomcat的訪問路徑(默認為http://localhost:8088),如果可以在網站中打開圖4頁面,即說明Dubbo框架可以使用。如圖4所示可以看到當前有幾個服務注冊到中心,有幾個調用者在申請服務。通過簡單配置,在不干擾網站系統業務的前提下,即可將網站架構部署成為分布式架構。當網站需要增加新服務支持時,只需在zookeeper服務中心注冊即可。
(5)網站服務過程。
使用Dubbo框架架構部署視頻網站系統啟動之后,各項功能服務獨立運行并向注冊中心注冊以備使用,調用服務時使用長連接方式提供服務。例如:會員小明在網站搜索視頻順序如圖5所示。
由圖5可知,在服務過程中,視頻搜索服務通過消息調用方式為前臺模塊提供服務,雙方向監控中心匯報服務運行情況。使得網站數據互相分離,保證數據安全。當視頻網站有服務擴充或新業務增加時,可以在網站系統不停機的情況下,直接向注冊中心注冊擴充,以保證視頻網站系統的可靠性與可擴展性。
3 結語
分布式系統架構是當前中大型網站常用的架構方式,通過分布式架構可以使網站具有并發性、可靠性、安全性與可擴展性等優勢。本文通過架構設計視頻網站案例介紹了Dubbo框架特點與使用方法,并在實際架構部署中加以驗證,與原始集中式部署方式相比,使用Dubbo框架架構的視頻網站具有更高的查詢播放速度,且能夠更加便捷的修改添加網站功能。
參考文獻:
[1] 崔星燦,禹曉輝,劉洋,等.分布式流處理技術綜述[J].計算機研究與發展,2015,52(02):318-332.
[2] 韓曾帆.行業應用網關集群架構的設計與實現[D].沈陽:東北大學,2008.
[3] 龔瑞琴,畢利.基于Web Service的Android技術應用研究[J].電子技術應用,2014,40(01):134-136.
[4] 陶明.一種分布式服務框架的設計與實現[D].北京:北京郵電大學,2013.
[5] 唐婧,蔣毅.以.net為基礎的三層架構分布式系統設計[J].電腦開發與應用,2012,25(07):37-39+45.
[6] 何騰蛟.分布式系統測試模型與框架的研究與應用[D].成都:電子科技大學,2009.
[7] 李磊,李娟.Dubbo服務框架技術在學習系統開發中的應用與實踐[J].計算機系統應用,2017,26(06):244-248.
[8] 劉先紡.基于Dubbo的網上訂餐系統[D].廣州:華南理工大學,2016.
[9] 陳曉棟.基于Dubbo分布式框架的信用卡無卡大額分期系統設計[J].信息與電腦:理論版,2017(07):132-135.
[10] 李磊,李娟.Dubbo服務框架技術在學習系統開發中的應用與實踐[J].計算機系統應用,2017,26(06):244-248.
[11] 朱鋒.基于SSH的在線視頻網站設計與實現[D].大連:大連理工大學,2015.
[12] 翟金亭,吳欽卿.基于Dubbo框架的視頻分享系統分析[J].中國新通信,2016,18(11):22-23.
[13] 張慶慶.基于Web的視頻點播系統的設計與實現[D].北京:北京郵電大學,2011.
[14] 徐悅軒.基于Spring技術的大型視頻網站后臺上傳系統的設計與實現[D].南京:南京大學,2014.
[15] 張莉.圖書館流媒體視頻點播系統構架詳解[J].現代情報,2005(05):128-131.
(責任編輯:劉亭亭)