`
wang5598
  • 浏览: 111360 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Red5边源服务器集群部署

    博客分类:
  • Red5
阅读更多

Red5边源服务器集群部署

WYQ 

1.     Red5简介

      Red5是一个采用Java开发开源的Flash流媒体服务器。它支持:把音频(MP3)和视频(FLV)转换成播放流; 录制客户端播放流(只支持FLV);共享对象;现场直播流发布;远程调用。Red5使用RTMP作为流媒体传输协议,在其自带的一些示例中演示了在线录制,flash流媒体播放,在线聊天,视频会议等一些基本功能。

 

Red5是建立在Jetty(servlet engine) Mina (networking)基础之上的,并通过使用Spring框架将起整合起来的。Jetty是一款运行速度较快轻量级的开源servlet 容器,可以作为嵌入式服务使用。Mina Apache组织下的一个基于 Java NIO 技术的新项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。Spring是轻量级Java企业级开发的事实标准,Red5采用Spring来管理使程序逻辑更加清晰,耦合性更低,扩展性更好。

 

2.   Red5与在线教室(Openmeetings项目的二次开发)的关系:

    在线教室是以Red5为视频流媒体服务器,通过Red5实现视频、音频、白板数据等实时发布和录制、通过RTMP协议实现对JAVA方法的远程调用,并提供在线聊天等服务。在整个系统中,Red5服务器起到了基石的作用,在Red5基础上开发我们自己的功能以提供学生教师在线上课的所有需求。

 

3.   Red5的集群:   

    OnlineClassroom开发采用的技术是:前端采用openlaszlo开发的flash客户端,后端采用Red5服务器,因为前端和后台之间采用RTMP(Realtime messaging protocol)进行连接,除非前端使用退出或者关闭功能,否则该连接会一直持续,我们知道,打开一个连接是要耗费系统资源的,当连接数众多时,会使服务器不堪重负,无法提供有效响应速度,所以需要多台服务器来分流用户连接;采用边源服务器的模式,边服务器(Edge Server)用来接受来自于客户端的连接,并将多个相同用户域的连接进行合并进行多路复用,统一转发给源服务器(Origin Server)进行处理,在源服务器处理完数据后再转发给边服务器,再由边服务器转发给客户端用户。这样做的好处是可以提高系统的承载能力。

 

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.91.0)经过测试,均无法实现集群效果。附上所有配置文件和需要的JAR包,以供下载。

 

二、注意:

在使用边源模式的时候,flash会经过边服务器去访问源服务器上的资源,这时候会涉及到flash的安全性和跨域访问数据的问题,这时需要在源服务器的Red5的安装目录下的webapp/root下面修改crossdomain.xml文件,添加:<allow-access-from domain="* " to-ports="20-65535"/>。此步骤十分必要,否则项目会出现资源禁止访问的错误。

 

 

三、源服务器的配置(需要首先安装Javared5,然后在安装openmeetings以及对应的插件,详细安装过程请看“在线教室插件安装说明.docx”):

 l  1.导入2jar包到red5lib目录下面。(分别是:mina-integration-spring-1.1.7.jar mina-filter-ssl-1.1.7.jar

l 2.删除red5lib目录下面的antlr-3.1.2.jar升级到antlr-3.1.3.jar

l  3.将“源服务器配置文件.zip”中的3xml文件解压到red5/conf下面。

l  4.确保源服务器上的9035端口没有被防火墙禁用。

l  5.部署应用项目(在线教室即openmeetings)到webapp下面,然后启动red5.sh

 

 

 

四、边服务器的配置(需要首先安装Javared5): 

l1.导入2jar包到red5lib目录下面(分别是:mina-integration-spring-1.1.7.jar mina-filter-ssl-1.1.7.jar

l2.删除red5lib目录下面的antlr-3.1.2.jar升级到antlr-3.1.3.jar

l3.源服务器中red5/webapp/openmeetings/WEB-INF/lib目录,将openmeetings.jarhibernate3.jar拷贝到边服务器的res5/lib目录下面(仅此2jar包,不要拷多了,不然会引起报错的)。

l4.将“边服务器配置文件.zip”中的3xml文件解压到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

然后保存退出。

 

五、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

分享到:
评论
4 楼 gtb6900 2013-06-30  
当flv文件超过10M后集群无法运行,报错:
2013-06-30 17:25:59,875 [pool-3-thread-1] ERROR org.red5.io.flv.impl.FLVReader - New position exceeds limit
2013-06-30 17:25:59,875 [pool-3-thread-1] ERROR o.r.s.m.InMemoryPullPullPipe - exception when pulling message from provider
java.lang.RuntimeException: New position exceeds limit

貌似有什么限制?
我QQ:479880729
3 楼 LJG0510 2012-08-17  
太给力了   找了好久 都没找到这么好的 文章        
2 楼 mbguest 2012-05-23  
感谢提供配置和jar包
1 楼 5681 2011-12-30  

相关推荐

    单片机C语言Proteus仿真实例可演奏的电子琴

    单片机C语言Proteus仿真实例可演奏的电子琴提取方式是百度网盘分享地址

    电力概预算软件.zip

    电力概预算软件

    setuptools-64.0.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    爱你老妈(HTML文件)母亲节快乐

    母亲节祝福html源码 很简单的代码,随机生成背景

    Python源码-三门问题的验证.py

    Python源码-三门问题的验证

    setuptools-62.6.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    Gomoku.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    【财务管理】财务费用报销流程(含流程图).pdf

    【财务管理】财务费用报销流程(含流程图).pdf

    setuptools-46.3.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    C语言课作业-五子棋GomokuZero.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    setuptools-66.1.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-65.6.3.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-46.1.0.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-0.9.5.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-3.0.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    电力架空线路辅助设计软件.zip

    电力架空线路辅助设计软件

    红外辐射测温枪的测温原理2020年中国计算机设计大赛获奖作品展视频

    红外辐射测温枪的测温原理2020年中国计算机设计大赛获奖作品展视频提取方式是百度网盘分享地址

    实用五金手册计算软件.zip

    实用五金手册计算软件

    住宅小区配变电容量计算软件.zip

    住宅小区配变电容量计算软件

    中国大学生计算机设计大赛信息可视化国家二等奖计算机设计大赛

    中国大学生计算机设计大赛 信息可视化国家二等奖计算机设计大赛提取方式是百度网盘分享地址

Global site tag (gtag.js) - Google Analytics