轉自:http://blog.csdn.net/samxx8/article/details/7764252html
Red5邊源服務器集羣部署前端
WYQ java
1. Red5簡介:web
Red5是一個採用Java開發開源的Flash流媒體服務器。它支持:把音頻(MP3)和視頻(FLV)轉換成播放流; 錄製客戶端播放流(只支持FLV);共享對象;現場直播流發佈;遠程調用。Red5使用RTMP做爲流媒體傳輸協議,在其自帶的一些示例中演示了在線錄製,flash流媒體播放,在線聊天,視頻會議等一些基本功能。spring
Red5是創建在Jetty(servlet engine) , Mina (networking)基礎之上的,並經過使用Spring框架將起整合起來的。Jetty是一款運行速度較快輕量級的開源servlet 容器,能夠做爲嵌入式服務使用。Mina 是Apache組織下的一個基於 Java NIO 技術的新項目,它爲開發高性能和高可用性的網絡應用程序提供了很是便利的框架。Spring是輕量級Java企業級開發的事實標準,Red5採用Spring來管理使程序邏輯更加清晰,耦合性更低,擴展性更好。windows
2. Red5與在線教室(Openmeetings項目的二次開發)的關係:後端
在線教室是以Red5爲視頻流媒體服務器,經過Red5實現視頻、音頻、白板數據等實時發佈和錄製、經過RTMP協議實現對JAVA方法的遠程調用,並提供在線聊天等服務。在整個系統中,Red5服務器起到了基石的做用,在Red5基礎上開發咱們本身的功能以提供學生教師在線上課的全部需求。跨域
3. Red5的集羣: 瀏覽器
OnlineClassroom開發採用的技術是:前端採用openlaszlo開發的flash客戶端,後端採用Red5服務器,由於前端和後臺之間採用RTMP(Realtime messaging protocol)進行鏈接,除非前端使用退出或者關閉功能,不然該鏈接會一直持續,咱們知道,打開一個鏈接是要耗費系統資源的,當鏈接數衆多時,會使服務器不堪重負,沒法提供有效響應速度,因此須要多臺服務器來分流用戶鏈接;採用邊源服務器的模式,邊服務器(Edge Server)用來接受來自於客戶端的鏈接,並將多個相同用戶域的鏈接進行合併進行多路複用,統一轉發給源服務器(Origin Server)進行處理,在源服務器處理完數據後再轉發給邊服務器,再由邊服務器轉發給客戶端用戶。這樣作的好處是能夠提升系統的承載能力。tomcat
4. 部署步驟說明:
Red5官方網站目前有提供關於集羣的指導文檔,地址是:http://trac.red5.org/wiki/Documentation/Tutorials/EdgeOriginClusteringConfiguration 須要說明的是,官方文檔提供的步驟過於簡略,實際執行過程當中會碰到諸多錯誤,因此整理如下的操做步驟,以供參考:
Red5的下載地址是:http://trac.red5.org/downloads/0_8/red5-0.8.0-java5.tar.gz
安裝目錄是 /var/www/html/red5 (版本爲0.8.0.0)
Tar –xzvf red5-0.8.0.tar.gz –C /var/www/html/red5
以上配置針對的是Red5 (版本0.8.0.0),下載地址是:http://trac.red5.org/downloads/0_8/red5-0.8.0-java5.tar.gz;
其它版本(0.9和1.0)通過測試,均沒法實現集羣效果。附上全部配置文件和須要的JAR包,以供下載。
2、注意:
在使用邊源模式的時候,flash會通過邊服務器去訪問源服務器上的資源,這時候會涉及到flash的安全性和跨域訪問數據的問題,這時須要在源服務器的Red5的安裝目錄下的webapp/root下面修改crossdomain.xml文件,添加:<allow-access-from domain="* " to-ports="20-65535"/>。此步驟十分必要,不然項目會出現資源禁止訪問的錯誤。
3、源服務器的配置(須要首先安裝Java和red5,而後在安裝openmeetings以及對應的插件,詳細安裝過程請看「在線教室插件安裝說明.docx」):
l 1.導入2個jar包到red5的lib目錄下面。(分別是:mina-integration-spring-1.1.7.jar 和 mina-filter-ssl-1.1.7.jar)
l 2.刪除red5的lib目錄下面的antlr-3.1.2.jar升級到antlr-3.1.3.jar
l 3.將「源服務器配置文件.zip」中的3個xml文件解壓到red5/conf下面。
l 4.確保源服務器上的9035端口沒有被防火牆禁用。
l 5.部署應用項目(在線教室即openmeetings)到webapp下面,而後啓動red5.sh
4、邊服務器的配置(須要首先安裝Java和red5):
l1.導入2個jar包到red5的lib目錄下面(分別是:mina-integration-spring-1.1.7.jar 和 mina-filter-ssl-1.1.7.jar)
l2.刪除red5的lib目錄下面的antlr-3.1.2.jar升級到antlr-3.1.3.jar
l3.源服務器中red5/webapp/openmeetings/WEB-INF/lib目錄,將openmeetings.jar和hibernate3.jar拷貝到邊服務器的res5/lib目錄下面(僅此2個jar包,不要拷多了,否則會引發報錯的)。
l4.將「邊服務器配置文件.zip」中的3個xml文件解壓到red5/conf目錄下面。
l5.更新red5/conf/red5-edge-core.xml 的配置文件,修改 "mrtmpClient" 中的server屬性,使其指向源服務器的IP地址。
l6.啓動red5主目錄下的red5.sh腳本。
l7.補充一點,在邊服務器在設置好開機自啓動腳本,這樣每次由邊服務器管理功能所新增的邊服務器都能自動運行red5的腳本,避免手動執行的麻煩。腳本以下:
vi /etc/rc.d/rc.local 在文件最後一行添加以下命令:
cd /var/www/html/red5
./red5.sh
而後保存退出。
5、flash服務器的配置(須要首先安裝JDK1.6):
l1.通過測試,能夠把flash服務器部署在windows的虛擬機上均可以。這樣方便管理。
l2.安裝openlaszlo,目前版本爲4.9.0,在附件中已經提供了windows下的安裝包,一路點擊Next.我這裏安裝路徑是:C:\Program Files\OpenLaszlo Server 4.9.0;而後將在線教室的客戶端程序放到Server\lps-4.9.0目錄下:全路徑如:C:\Program Files\OpenLaszlo Server 4.9.0\Server\lps-4.9.0\onlineroom。
l3.更新config.xml文件,將rtmphostlocal指向默認的邊服務器的IP,將red5ogigin指向源服務器對應的IP,將red5flash指向flash服務器的IP,若是支持邊源模式將supportcluster的值設爲true,不然設置爲false。將附件中index.html文件替換到C:\Program Files\OpenLaszlo Server 4.9.0\Server\tomcat-5.0.24\webapps\ROOT下面。(頂替原文件便可)。
l4.安裝完成之後,啓動openlaszlo。全部安裝即完成。
而後啓動瀏覽器輸入地址:如http://172.10.106.166:8080