http://www.myexception.cn/open-source/446184.html

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

二、注意:

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

三、源服务器的配置(需要首先安装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

四、边服务器的配置(需要首先安装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

然后保存退出。

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

1 楼 5681 2011-12-30  
 
2 楼 mbguest 2012-05-23  
感谢提供配置和jar包

Red5边源服务器集群部署的更多相关文章

  1. FastDFS集群部署

    之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1[主机](Tracker S ...

  2. FastDFS集群部署(转载 写的比较好)

    FastDFS集群部署   之前介绍过关于FastDFS单机部署,详见博文:FastDFS+Nginx(单点部署)事例 下面来玩下FastDFS集群部署,实现高可用(HA) 服务器规划: 跟踪服务器1 ...

  3. Fastdfs集群部署以及基本操作

    FastDFS引言 本地存储与分布式文件系统 本地存储的缺点: 是否有备份? 没有 成本角度? 贵 ​ 服务器 :用于计算 ---- cpu/内存 ​ 用于存储 ---- 硬盘大 存储瓶颈? 容量有限 ...

  4. Quartz.net持久化与集群部署开发详解

    序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我的罪过. 但是quart.net是经过许多大项 ...

  5. Openfire 集群部署和负载均衡方案

    Openfire 集群部署和负载均衡方案 一.   概述 Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Hapro ...

  6. 基于Tomcat的Solr3.5集群部署

    基于Tomcat的Solr3.5集群部署 一.准备工作 1.1 保证SOLR库文件版本相同 保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6 ...

  7. jstorm集群部署

    jstorm集群部署下载 Install JStorm Take jstorm-0.9.6.zip as an example unzip jstorm-0.9.6.1.zip vi ~/.bashr ...

  8. CAS 集群部署session共享配置

    背景 前段时间,项目计划搞独立的登录鉴权中心,由于单独开发一套稳定的登录.鉴权代码,工作量大,最终的方案是对开源鉴权中心CAS(Central Authentication Service)作适配修改 ...

  9. Windows下ELK环境搭建(单机多节点集群部署)

    1.背景 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时 ...

随机推荐

  1. sql server 读取表结构

    SELECT 表名 then d.name else '' end, 字段序号=a.colorder, 主键 FROM sysobjects where xtype='PK' and name in ...

  2. 通知角标(2)只用一个TextView实现

    可以只用一个TextView实现通知角标,TextView的setCompoundDrawables函数可以在TextView的上,下,左,右,4条边处分别指定一个图片.见图1: 这个图片如果在角上, ...

  3. error: dst ref refs/heads/zhCN_v0.13.1 receives from more than one src.

    http://segmentfault.com/q/1010000000257571 想要把本地的分支推送到远端 git push chucklu zhCN_v0.13.1 zhCN_v0.13.1 ...

  4. Jqgrid入门-操作表格的数据(二)

    上一篇中,Jqgrid已经可以从服务端获得数据,并显示在Grid表格中了.下面说一下,如何操作表格及其数据.           jqGrid有很多方法函数,用来操作数据或者操作Grid表格本身.jq ...

  5. acdream 1408 "Money, Money, Money" (水)

    题意:给出一个自然数x,要求找两个自然数a和b,任意多个a和b的组合都不能等于x,且要可以组合成大于x的任何自然数.如果找不到就输出两个0.(输出任意一个满足条件的答案) 思路:x=偶数时,无法构成, ...

  6. apache开源项目 -- tez

    为了更高效地运行存在依赖关系的作业(比如Pig和Hive产生的MapReduce作业),减少磁盘和网络IO,Hortonworks开发了DAG计 算框架Tez.Tez是从MapReduce计算框架演化 ...

  7. 【JS】<select>标签小结

    循环时通过<c:if>来判断是否为默认选中 <select name="select" id="month"> <c:forEac ...

  8. 配置ORACLE 客户端连接到数据库

    --================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle ...

  9. web项目Log4j日志输出路径配置问题

    问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽 ...

  10. TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

    1.IMCP协议介绍 前面讲到了,IP协议并不是一个可靠的协议,它不保证数据被送达,那么,自然的,保证数据送达的工作应该由其他的模块来完成.其中一个重要的模块就是ICMP(网络控制报文)协议. 当传送 ...