摘 要: 網絡流媒體服務具有數據流量大、服務時間長的特點,同時,高并發的服務請求會造成流媒體服務質量明顯下降等性能瓶頸問題。針對這種現象,設計了一種基于Zipf分布規律的兩階段副本放置策略,并成功應用于某市中小學心理輔導的視訊平臺。實踐結果表明,與傳統的方法相比,該方法具有較好的實用值和健壯性。
關鍵詞: 集群;Red5流媒體;負載均衡;副本放置
1 研究背景及意義
隨著計算機網絡的發展和軟硬件水平的提升,作為多媒體與網絡結合的產物,流媒體技術應運而生。流媒體技術的核心主要集中在流媒體服務器方面。隨著用戶需求多樣化、信息海量化和交互實時化,服務器性能逐漸成為用戶需求的瓶頸。如何在保證現有的硬件條件下有效地解決大量用戶訪問產生的服務器性能瓶頸,是目前乃至今后需要著力解決的課題。
對此,有學者提出了集群的概念。服務器集群是將許多較為廉價服務器通過網絡和相關軟件連接起來,用以提供比單一服務更穩定、更高效、更具擴展性的服務平臺,使整個系統更加健壯,從而解決單點故障可能帶來的問題。
本文采用服務器集群的方式均衡用戶服務請求,使每臺服務器負載最優,保證了服務器可以有效地向用戶提供服務。Red5流媒體服務器提供了一種開源模式的集群架構,為了更好地模擬用戶需求,本文改進了Red5流媒體服務器的集群架構,以調度服務器為中心進行負載均衡調動,通過負反饋機制根據流媒體服務器負載量值計算權值,以此分配用戶請求的策略進行負載均衡。對于視頻文件的存儲,為了節省存儲空間和對用戶點播請求進行分流,對基于Zipf的點播分布規律的兩階段副本放置算法進行改進,從而達到對用戶請求分流的目的。
2 流媒體服務器集群及其相關改進
流媒體服務器要處理眾多的用戶請求,并且要保證響應速度,它還要具有傳輸數據量大、持續時間長的特點。在這種情況下,服務器集群就發揮了優勢。它將許多較為廉價的服務器通過網絡和相關軟件連接起來,用以提供比單一服務更穩定、更高效、更具擴展性的服務平臺,集群部署可以增加整個系統的健壯性,更好地解決單點故障帶來的問題。集群具有主動容錯性、負載均衡性等優點[1],一方面當集群中的某個節點出現問題,不能正常工作時,它的任務會自動轉移到其他正常工作的節點上,繼續為用戶提供服務。另一方面將流媒體的服務均勻分配到各個服務器上,合理地利用各個流媒體服務器的資源,能更好地為用戶提供服務。
對此,Red5技術提供了一套服務器集群解決方案。在Red5環境中,邊服務器會將相同范圍的用戶請求分配到同一源服務器,所有源服務器上需要存儲相同視頻,邊服務器采用輪詢方式分配用戶請求。這種方式存在負載不均衡、存儲效率低等問題。本文在此集群方案基礎上,對Jabber系統進行了改進并提出了一種更簡潔實用的方案,如圖1所示。
在這個方案中,調度服務器實時監控服務節點的負載狀況,使調度相關策略在調度服務器上實施,從而將具體服務與請求調度分離。在此基礎上,調度器動態采集流媒體服務器的負載。其核心思想就是充分合理利用每臺服務器的剩余處理能力,將熱門影片合理復制到各個流媒體服務器上,使熱門影片有多個副本,這樣可以達到用戶點播請求分流的作用,而點播次數低的視頻文件則少存儲幾份,以此達到節省服務器空間的目的。
3 流媒體服務器集群中的副本放置
流媒體服務器集群中的視頻存儲問題關鍵在于副本放置。其原理是為了解決集群環境下單臺服務器負載過重的問題。具體而言,就是對某些點播頻繁的視頻進行復制,將其副本放置到其他服務器,以達到分流的目的;當視頻訪問熱度下降時,還要考慮刪除副本,以節省存儲空間。副本放置的相關算法有閾值算法、兩階段算法、背包問題算法[2]等,這些算法中有些可以應用在大型視頻點播系統中,但算法過于復雜,甚至沒有考慮到視頻點播概率的動態變化[3]。針對上述情況,本文采用了基于Zipf分布規律的副本放置策略,這樣既達到均衡效果,也節省了存儲空間。
3.3 視頻副本清理策略
為體現視頻熱度的變化,需要根據每天的點播情況改變視頻熱度,保證熱度低的視頻副本不過多地占用服務器空間,需定期進行清理[6]。具體而言,就是根據該檢索數據庫中的視頻信息表,判斷當天的視頻點播是否達到閾值,如果未達到則在總的點播次數上減去相應值,表示該影片的熱度下降,反之則加上當天的點播次數,表示熱度上升。如果該熱度小于刪除的閾值,則向流媒體服務器發送刪除命令。流程如圖3所示。
本文深入研究了Red5流媒體服務器集群相關技術以及現有的Red5集群解決方案,發現其中的不足,采用了一種基于Zipf分布規律的副本放置策略和負反饋動態負載均衡調度相結合的方式對用戶請求進行分流,以提高系統服務質量,并將該方法成功應用于某市中小學心理康復綜合社會救助服務系統。該平臺旨在建立中小學生心理康復綜合社會援助技術支撐體系和輔導體系。該方法不僅適應于上述平臺,同時對其他的負載均衡集群系統也具有一定的借鑒及參考意義。此外,隨著用戶信息和資源文件增長,在保證服務器數據安全性的基礎上,如何確保其健壯性,引入云計算平臺并實現海量數據的分布式存儲,進而更好地對平臺提供技術上的支持,達到更高的可用性,將是下一步研究的重點。
參考文獻
[1] 李子民.基于LVS的集群動態負載均衡算法研究[D].成都:電子科技大學,2009.
[2] 周航.大規模流媒體服務系統存儲調度研究[D].合肥:中國科學技術大學,2007.
[3] 姜琳.流媒體服務器的存儲策略[D].上海:復旦大學,2010.
[4] 宋曉華,黃河清,曹元大.基于用戶訪問統計特性的流媒體文件復制策略[J].南京理工大學學報,2007,31(50):617-621.
[5] 姜浩然,徐林.基于RTMP的流媒體服務器的研究[J].計算機與數字工程,2011,39(10):104-108.
[6] 陳世明.基于Lucene與RTMP的學生心理健康實時視訊平臺的設計與實現[D].成都:四川大學.2011.