Wowza Streaming Engine的負(fù)載均衡(Load Balancing)概述
當(dāng)兩臺(tái)以上的Wowza Streaming Engine組成一個(gè)集群(Cluster)時(shí),負(fù)載均衡器被用于將負(fù)載分發(fā)到每一臺(tái)Wowza服務(wù)器上。 當(dāng)有多臺(tái)Wowza 服務(wù)器提供流服務(wù)時(shí),負(fù)載均衡的設(shè)計(jì)就成了一個(gè)流傳輸解決方案中的基礎(chǔ)性的、必需的組成部分。 有幾種不同的負(fù)載均衡解決方案,他們可以獨(dú)立使用,也可以組合起來(lái)使用,具體用什么方案,依賴于你的集群環(huán)境到底有多大規(guī)模、如何分布式部署的。 此外,它還依賴你的流媒體業(yè)務(wù)是什么類型(點(diǎn)播或直播),有些負(fù)載均衡方案會(huì)比其它方案更好一些。 你的流媒體業(yè)務(wù)類型及相關(guān)業(yè)務(wù)流程決定了哪個(gè)方案更適合你。
關(guān)于負(fù)載均衡的需求
一個(gè)合適的、針對(duì)Wowza 服務(wù)器的負(fù)載均衡器,需要考慮以下這些可能的需求:
· 可以在集群中很方便的加入或刪除一臺(tái)Wowza Streaming Engine 服務(wù)器。理想狀態(tài)下,這個(gè)過(guò)程應(yīng)該是自動(dòng)完成的,這就要求當(dāng)一臺(tái)Wowza服務(wù)器停止提供流服務(wù)時(shí),它能夠被很方便的監(jiān)測(cè)到。
· 可以處理持久連接和非持久連接。持久連接是Wowza服務(wù)器與其它Wowza服務(wù)器的連接或者Wowza服務(wù)器和Wowza® GoCoder™之間的連接(通過(guò)WOWZ™ 和 RTMP 協(xié)議)。 非持久連接更多的是HTTP連接和RTMPT連接。
· 計(jì)算出集群中每一臺(tái)Wowza Streaming Engine當(dāng)前的負(fù)載,以此來(lái)進(jìn)行更精確的負(fù)載均衡策略。
· 服務(wù)器出現(xiàn)宕機(jī)時(shí)可以得到快速、高效的響應(yīng)。
· 流傳輸服務(wù)不能中斷或延時(shí)。
幾種不同的負(fù)載均衡方案
一、Wowza自有的負(fù)載均衡方案
Wowza 有一個(gè)負(fù)載均衡模塊,叫做Load Balancer ,它可以運(yùn)行在任何一個(gè)Wowza Streaming Engine™ 服務(wù)器上。 它由兩部分組成。其中一個(gè)是Listener,它運(yùn)行在被設(shè)計(jì)為負(fù)載均衡器的Wowza Streaming Engine服務(wù)器上, 它接收來(lái)自播放器的初始連接請(qǐng)求,以及集群中其它Wowza服務(wù)器的狀態(tài)更新請(qǐng)求。另一個(gè)是Sender,它運(yùn)行在集群中的其它任何一個(gè)Wowza服務(wù)器上,同時(shí)它會(huì)向Listernetr發(fā)送當(dāng)前正在承受的負(fù)載信息。
當(dāng)一個(gè)播放器請(qǐng)求流服務(wù)時(shí),它會(huì)首先連接Listener所在服務(wù)器上的一個(gè)應(yīng)用(Application)。這個(gè)連接會(huì)被自動(dòng)重定向,這是一個(gè)標(biāo)準(zhǔn)的302重定向,指向了這個(gè)集群中的一個(gè)正確的Wowza服務(wù)器。 于是,播放器丟棄了與Listerner上的應(yīng)用的連接,并與被重定向的那個(gè)Wowza服務(wù)器上的應(yīng)用建立連接。為了讓這個(gè)機(jī)制能夠正常運(yùn)轉(zhuǎn),播放器必須可以處理302重定向。這有可能會(huì)限制了你選擇播放器的范圍。 對(duì)于哪些不支持重定向的播放器,Listener還提供了一個(gè)HTTP接口,調(diào)用它后,可以獲得當(dāng)前的重定向地址。
Wowza自有的Load Balancer不支持對(duì)來(lái)自編碼器的請(qǐng)求進(jìn)行負(fù)載均衡和重定向。因此針對(duì)這類需求,必須使用其它負(fù)載均衡方案。
由于Wowza自有的Load Balancer是運(yùn)行在Wowza Streaming Engine 軟件之上的。因此你可以用Java Classes來(lái)擴(kuò)展它來(lái)進(jìn)行更好的控制,更好的來(lái)處理負(fù)載請(qǐng)求。
二、基于Round-robin DNS 和 Geo-based DNS 的負(fù)載均衡方案
在某些場(chǎng)景下,可以用支持 round-robin 和 Geo-based的 DNS來(lái)進(jìn)行負(fù)載均衡。 他們通常適合用在持久性的連接上,在非持久性連接上它可能會(huì)引發(fā)一些問(wèn)題。這是由于對(duì)于非持久性連接來(lái)說(shuō),每一次連接請(qǐng)求都會(huì)導(dǎo)致一次新的DNS lookup ,這樣客戶端就有可能會(huì)收到一個(gè)新的服務(wù)器地址。 基于DNS的負(fù)載均衡只能提供一個(gè)很簡(jiǎn)陋的負(fù)載均衡機(jī)制,因?yàn)镈NS 沒(méi)法知道集群中每一臺(tái)Wowza服務(wù)器的負(fù)載信息。 同時(shí),DNS內(nèi)部的緩存機(jī)制可能會(huì)讓有些服務(wù)器收到比其它服務(wù)器更多的連接請(qǐng)求。 如果其中一臺(tái)發(fā)生宕機(jī),由于DNS中的緩存機(jī)制,這個(gè)服務(wù)器的狀態(tài)沒(méi)法得到更新。
三、第三方的負(fù)載均衡方案
很多第三方的負(fù)載均衡器會(huì)將來(lái)自客戶端的TCP包或UDP包轉(zhuǎn)發(fā)至集群中的某個(gè)合適的Wowza服務(wù)器上。它類似于一個(gè)路由器在網(wǎng)絡(luò)上轉(zhuǎn)發(fā)數(shù)據(jù)包。 所有來(lái)自客戶端的網(wǎng)絡(luò)流量都會(huì)通過(guò)這個(gè)負(fù)載均衡器。 有些負(fù)載均衡器在集群服務(wù)器向客戶端的返回的流量有不同的選項(xiàng)。大部分時(shí)候,這個(gè)網(wǎng)絡(luò)流量會(huì)包含很大量的音視頻媒體數(shù)據(jù)包。因此,在選擇這些選項(xiàng)時(shí)一定要注意不要讓負(fù)載均衡器引起網(wǎng)絡(luò)延時(shí)。
在這里,我們做一個(gè)簡(jiǎn)單的推薦,你可以根據(jù)自己的業(yè)務(wù)場(chǎng)景來(lái)選擇合適的方案:
1. Nginx 反向代理,比如nginx_tcp_proxy_module 和 nginx_upstream_check_module模塊,你在網(wǎng)上能搜索到很多這些資源。
2. 淘寶團(tuán)隊(duì)共享的開源產(chǎn)品:Tengine,這里是它的官網(wǎng)。淘寶 Tengine
因?yàn)樗衼?lái)自客戶端的流量都會(huì)經(jīng)過(guò)這個(gè)負(fù)載均衡器,因此這個(gè)負(fù)載均衡器可以公平而精準(zhǔn)地監(jiān)測(cè)集群上每一臺(tái)服務(wù)器的的負(fù)載,對(duì)集群上一臺(tái)服務(wù)器的宕機(jī)信息可以用其它方式來(lái)監(jiān)控。
正常情況下,這個(gè)負(fù)載均衡是對(duì)客戶端來(lái)說(shuō)是完全透明的;然而,針對(duì)非持久性連接的場(chǎng)景下,你一定要小心確保這些連接都可以被轉(zhuǎn)發(fā)到正確的Wowza服務(wù)器上。 在大部分情況下,通過(guò)配置可以解決這個(gè)問(wèn)題。
注意
· 在一些場(chǎng)景下,將多種負(fù)載均衡方案組合起來(lái)使用有很大的好處。例如 round-robin DNS 可以被用于將連接指向一對(duì)Wowza的負(fù)載均衡器或一對(duì)第三方的負(fù)載均衡器。
· Geo-based DNS 可以被用于將請(qǐng)求指向某一個(gè)數(shù)據(jù)中心的Wowza負(fù)載均衡器或第三方負(fù)載均衡器。
· 當(dāng)然基于DNS的負(fù)載均衡還可以被用在將來(lái)自編碼器的請(qǐng)求轉(zhuǎn)發(fā)到不同的Wowza源服務(wù)器。
Wowza Streaming Engine 4是目前業(yè)界功能最全面、API接口最豐富的流媒體Server產(chǎn)品,采用它作為流媒體服務(wù)器產(chǎn)品的案例很多,直播、在線教育、IPTV都有它的用武之地。
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫