流媒体服务器的sewise软件系统
sewise流媒体服务器软件系统是一整套流媒体编码、分发和存储的软件系统,包含直播、点播、虚拟直播、剪切、转码、视频管理系统。这些软件支持多屏多系统播放,终端客户使用手机、平板、电脑、电视等终端,ios、安卓、windows、linux等系统,都能支持播放。 UMS通过使用RTMP协议向Flash Player传输或接收多种比特率的直播/点播媒体流、数据以及远程调用信息UMS服务器支持基于Adobe Flash/AIR技术平台的流媒体点播/直播及其他功能
AMS流媒体服务系统是一套完整的基于IP网络的音视频应用平台,采用模块化,跨平台的架构设计,采用自主研发的高性能流媒体服务引擎,支持多种主流流媒体协议(RTP、RTSP、RTMP、http、HLS等);支持直播、点播、录播等多种应用模式;支持PC机、手机、机顶盒等多种接入终端。方便用户建立多种应用模式
21 使用UMSMonitor配置UMS服务
UMSMonitor是一款专门用于管理Ultrant MediaServer服务器软件的工具软件,使用它可以方便地启动、停止、重启Ultrant Media Server服务,并可以设置各种运行参数。您可以通过鼠标右键点击Windows托盘右下角的蚂蚁图标来弹出系统菜单,见下图:
弹出上图菜单后,用鼠标左键选取“打开Ultrant Media Server Monitor”选项,即可弹出UMSMonitor的主控界面,如下图:
在UMSMonitor软件主控界面上,您可以通过左边的“服务状态”列表查看已经安装的UMS相关服务及其工作状态,要管理其中某一项服务,您需要先选中左边的列表项,然后找到右边的三个服务控制按钮,分别是“启动服务”、“停止服务”、“重启服务”,这三个按钮分别对应的功能是:启动UMS相关服务、停止UMS相关服务、重启UMS相关服务。 在UMSMonitor软件主控界面上,您需要先选中“Ultrant Media Server(UMS)”项,然后通过鼠标左键点击右边的“配置服务”按钮来进入Ultrant Media Server服务器软件配置界面。配置界面如下图:
配置完成后,您需要点击“应用”以确认修改,然后点击“确定”使修改立刻生效,此时软件会提示您是否重启Ultrant Media Server服务以使修改生效,选择“确定”是配置生效。
22 测试点播功能
要使用点播功能,您需要自己准备一个FLV格式的视频文件,并将其拷贝至任一媒体库路径下(媒体库路径可以通过UMSMonitor来添加),或将该FLV格式视频文件所在路径添加至媒体库路径。
视频文件及媒体库路径准备好后,请确保修改的设置已经生效,以及文件名没有冲突。如果您使用的是安装程序自带的Nginx Web服务器,请将nginx安装目录下html子文件夹中的vodhtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\vodhtml用记事本打开,找到下述代码:
soaddVariable('file','6roomsflv');
soaddVariable('start','0');
soaddVariable('streamer','rtmp://127001:1935/vod');
将127001改为您当前服务器的IP地址;如果您使用自己准备的FLV格式视频文件,请将vodhtml文件中上述代码中的“6roomsflv”改为您自己准备的视频文件名称。
如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/vodhtml来访问点播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/vodhtml来访问点播页面。
播放页面正常出现后,点击播放器即可播放。
23 测试直播功能
您可以使用Adobe公司提供的免费软件Adobe Flash Media Live Encoder31来测试UltrantMedia Server软件的直播功能。
231 安装Adobe Flash Media Live Encoder31
安装过程及帮助详见Adobe官方网站。
232 准备摄像设备
您可以使用USB网络摄像头或专业的视频采集卡(需要Adobe Flash Media Live Encoder31程序能够识别)来作为视频源。
233 使用Adobe Flash Media Live Encoder31发布直播流
打开Adobe Flash MediaLive Encoder31软件,确保视频采集设备和音频采集设备能正常工作,正常工作的硬件设备看似应该如下图所示:
请正确设置好坐图红色矩形框所标注的位置,其中,FMS URL位置处的URL地址应该为”rtmp://{UltrantMedia Server所在服务器IP地址}/live”,Stream位置处应该为”livestream”。设置完成后,要首先按下”Connect”按钮,如果“Connect”按钮上的文字变成“Disconnect”,则表明连接成功;然后按最下边红色矩形框标注的“Start”按钮,以启动直播发布。正常工作的Adobe Flash Media LiveEncoder31看似应该如下图所示:
234 查看直播视频
如果您使用的是安装程序自带的NginxWeb服务器,请将nginx安装目录下html子文件夹中的livehtml文件用记事本打开;如果您使用已有的Web服务器,请将Web服务器根目录下的UMS\livehtml文件用记事本打开,找到下述代码:
soaddVariable('file','livestream');
soaddVariable('streamer','rtmp://127001:1935/live');
将127001改为您当前服务器的IP地址;如果您重新命名了发布的视频流的名称,请将livehtml文件中上述代码中的“livestream”改为您自己命名的视频流的名称。
如果您使用安装程序自带的Nginx Web服务器,您可以通过浏览器访问http://{服务器IP地址}/livehtml来访问直播页面;如果您使用您的计算机原有的Web服务器,您可以通过浏览器访问http://{服务器IP地址}/UMS/livehtml来访问直播页面。 UMS支持可伸缩的无限级连直播集群组网功能,通过简单的可视化配置,您就可以将多台装有UMS服务器软件的服务器组成一个统一的直播网络群,其中的每一个节点都可以对外提供一致的直播服务。
31使用UMSMonitor管理工具配置直播集群组网功能
打开UMSMonitor的服务配置界面,找到其中的”CDN配置”选项页,如下图:
如果您选择“使用直播流转发服务器功能”,则UMS可以作为直播流转发服务器使用。当您选择“应用”配置,选择“确定”并重启服务使配置生效后,您当前配置的UMS服务器软件将自动连接到上级UMS直播源服务器的同步地址和端口,以获取直播同步信息。注意:您必须启用上级UMS服务器的“使用直播流服务器功能”,也就是启用上级UMS服务器同等的上述配置页面的下半部分选项。只有在与上级UMS服务器的同步端口和同步口令一致的情况下,当前配置的UMS服务器才能连接到上级直播源服务器的同步端口,才能进行直播信息同步。
“上级直播源服务器服务地址”理论上与“上级直播源服务器同步地址”是一致的,都是上级服务器的地址(当设置UMS的对外视频直播服务IP与UMS对外直播同步服务IP不一致的情况除外),“上级直播源服务器服务端口”就是上级UMS服务器在UMSMonitor配置工具服务配置页面中的“基本配置”页面上的“IP地址和端口”栏中设置的监听端口,上级UMS通过这个端口对外提供视频数据直播服务。当前配置的UMS服务器也是从上级服务器的对外视频数据直播服务端口获取实时视频直播数据,并经由本地转发的。
启用本地的“使用直播流源服务器功能”后,当前配置的UMS服务器即可作为直播源服务器,为下级UMS服务器提供直播信息同步服务和直播视频流传输服务。
UMS服务器在进行上下级组网同步直播信息和直播数据流的同时,还能对用户提供视音频数据的点播和直播功能。下图描绘的是使用UMS进行直播组网后的效果图:
从版本189开始,Ultrant Media Server引入了一种新的服务器程序,即媒体内容访问控制服务器(UMAS,即Ultrant Media Access Service)。UMAS为Ultrant Media Server服务器系统提供了强大而灵活的网络授权功能,可以有效地保护您的媒体内容。
41 UMAS服务模式介绍
UMAS是一个口令生成与管理服务器软件。UMAS提供访问口令的生成、管理与分发功能,并提供友好的开发集成接口。UMAS与UMS对外服务主程序的协作图如下:
或见下图:
42 配置UMAS及UMS以使用访问控制功能
您可以通过UMSMonitor程序来配置UMAS服务,以及配置UMS与UMAS的连接参数。
421配置UMAS服务
请首先确保UMAS服务已经安装。打开UMSMonitor配置工具(方法见22),您可以从已安装的服务列表中查看UMAS服务是否已经安装。要配置UMAS服务,先用鼠标选中Ulrant Media Access Service(UMAS)行,点击面板右边的“配置服务”按钮,即会弹出UMAS服务的配置页面,如下图。其中,口令分发服务相关参数影响UMS主服务程序与UMAS服务的连接,包括口令分发服务配置栏目和口令分发服务连接设置栏目;口令获取服务相关参数影响通过HTTP连接接口创建并返回口令功能,该部分设置包括口令获取服务配置和口令获取服务连接设置栏目。要获取各个参数的使用方法,请将鼠标移动至相关文本框,您可以通过界面提示信息来修改参数。
注意:这里设置的IP地址是UMAS服务要绑定的IP地址,通常设置为0000,即绑定任意地址;两个端口值分别是UMAS要监听的口令分发服务端口和口令获取服务端口,配置适当的UMS服务主程序将连接到口令分发服务端口与UMAS进行通信,Web系统集成则需要后端服务脚本通过口令获取服务端口创建和获取访问控制口令。与上述两个端口对应的口令则是服务的接入口令。
422配置UMS以连接UMAS
要配置UMS服务,请打开UMSMonitor配置工具(方法见22),先用鼠标选中Ulrant Media Server(UMS)行,点击面板右边的“配置服务”按钮,即会弹出UMS服务的配置页面,再选中“综合配置”页面,如下图所示。
上图中,右下角的“媒体访问控制配置”包含了需要配置的若干选项。其中,UMAS服务器地址是UMAS服务器软件对外提供服务的IP地址(注意:这个IP地址跟章节321配置的UMAS的绑定地址不是一回事);UMAS服务器端口应与章节321中配置的分发服务器端口一致;UMAS服务器口令应与章节321中配置的分发服务器口令一致。
注意:一旦您选定连接访问控制服务器(UMAS)选项,对于所有访问该UMS服务的连接,均需提供正确的访问控制口令才能访问媒体内容,否则将无法继续访问媒体内容。该功能必须与UMAS一起使用,您需要参照章节321和章节33来设计您的内容管理系统。
43 UMAS内部集成接口
UMAS为方便与现有web系统集成,设计为通过标准HTTP请求创建并获取口令,在此同时,UMAS会自动将新生成的访问口令分发到连接至自身的UMS服务器。UMAS与web系统以及UMS主服务器程序可以分别部署在不同的硬件服务器上。 参数中文释义 参数项 说明 页面 gettoken UMAS提供的获取访问口令的接口页面(内部虚拟页面)。 服务接入口令 token 外部应用访问口令获取接口必须提供的接入口令,该口令通过UMSMonitor程序设置,是为了防止不合法用户使用口令获取功能。 应用名称 app 设置要获取的口令所能访问的应用名称,如果不设置该参数,则获取的口令可以访问所有可用应用。 有效时间 duration 设置要获取的口令的有效时间,超过有效时间的访问口令将不再起作用。(数值类型:整数;单位:秒) 使用次数 limit 设置要获取的口令的使用次数,超过使用次数的访问口令将不再起作用。(数值类型:整数;单位:次)。
注意:如果一个访问口令在有效次数内超过有效时间,其仍会失去有效性。 返回格式 format 设置UMAS返回的口令的格式。(数值类型:枚举(xml和json),如果不设置则返回文本类型)。返回的xml格式举例:
<xml version =10 encoding=utf-8>
<Token>CiQY56Fy6X65ltXH</Token>
返回的json格式举例:
{Token:xDDcnR4V07Iqyn3n}
返回的文本格式举例:
39VvZGpnrmVcsSiZ 44接口使用示例
在使用之前请先确保UMAS服务器程序在正常运行,并开启相关的防火墙端口。您需要先向UMAS管理员获取UMAS对外提供服务的IP地址和端口值,以及服务访问口令,通过下述形式访问UMAS服务以获取媒体访问控制口令(protocol仅支持HTTP):
{protocol}://{umas_ip}:{umas_port}/gettokentoken={umas_token}&app=vod&duration=100&limit=10&format=xml
45媒体访问控制口令的使用
媒体访问控制口令是一个16位的字符串,在播放器与UMS主服务器程序建立RTMP连接的时候使用,使用方式如下(protocol仅支持rtmp、rtmpe):
{protocol}://{ums_ip}:{ums_port}/{app_name}token={从UMAS获取的媒体访问控制口令}
视频服务器和流媒体服务器是不一样、不关联的两种产品。
一、两者的定义与功能
1 先说流媒体服务器。
流媒体指以流方式在网络中传送音频、视频和多媒体文件的媒体形式。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看,而不必等待整个文件下载完毕。由于流媒体技术的优越性,该技术广泛应用于视频点播、视频会议、远程教育、远程医疗和在线直播系统中。
流媒体服务器是流媒体系统的核心组成,是向用户提供视频服务的关键平台。其主要功能是对媒体内容进行采集、推流、转码、传输和分发,流媒体应用系统的主要性能体现都取决于媒体服务器的配置和部署。
2 再说视频服务器。
视频服务器是对视音频数据进行压缩、存储及处理的专用嵌入式设备,它在远程监控及视频等方面都有广泛的应用。视频服务器采用MPEG4或MPEG2等压缩格式,在符合技术指标的情况下对视频数据进行压缩编码,以满足存储和传输的要求。
视频服务器可以对视音频数据进行压缩、存储及处理,以满足存储和传输的要求,它在远程监控及视频等方面都有广泛的应用。
二、两者的应用区别
1 流媒体服务器主要是连接端到端,负责音视频流的传输,包括采集、转码、推流,存储等功能。可部署在局域网和互联网,实现私有云和公有云应用,互联先锋流媒体服务器在单设备上可实现10000+高并发量。可适用各类视频业务场景,包括视频门户网站、会议活动现场直播、网络电视台、远程监控、在线课堂、 科研方向等。
2 视频服务器主要是对音视频的编解码处理,所以很多视频服务器产品也叫做视频编解码器。目前市场主流的厂商以海康威视为代表。视频服务器可为高清网络监控提供强有力的支持,应用于金融、公安、部队、电信、交通、电力、教育、水利等领域的安全防范。
一、手机直播系统源码开发实现视频直播主要有以下四步:
1)前端采集编码设备:提供直播信号源的采集和编码压缩功能,并将信号推送到直播流媒体服务器上。
2)直播流媒体服务器:负责直播流的发布和转播分发功能。
3)WEB服务器:实现直播节目在终端上的展现。
4)终端设备:包括PC和移动终端。编码和协议 是实现直播的重要环节:1)网络协议:主要有3种 a RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议, 由Real Networks和Netscape共同提出的;b RTMP(Real Time Messaging Protocol):实时消息传送协议是Adobe公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议;c HLS(HTTP Live Streaming):是苹果公司(Apple Inc)实现的基于HTTP的流媒体传输协议; 2)视频编码: Mpeg4, H264等 3)音频编码: Mp3, AAC等4)视频分辨率: 标清通常指的是640×480(或768×480);高清指的是1280×720;全高清指的是1920×1080;超高清3840×2160。
二、直播系统源码搭建服务器部署重点
直播系统源码有哪几块组成,视频直播的过程一般可以分为采集、前处理、编码、传输、解码、渲染这几个环节,经过这几个环节之后,我们就可以通过PC端或者移动端进行视频直播的观看。直播系统在搭建时会用到多个业务服务器,共同完成直播系统的业务逻辑流程。通常在服务器部署时会采用动静分离分布式部署方式,保障了直播平台的稳定运行。主要用到以下的业务服务器。
1)消息服务器:主要用于消息推送,给用户推送房间聊天消息、私信消息。
2)业务服务器:手机直播的业务部分、好友关系、直播管理、货币系统、礼物系统等。
3)视频服务器:视频直播、点播、转码、存储和点播等。
4)IM即时聊天:使用Nodejs服务自主搭建部署聊天服务器。
5)视频流(流媒体服务器):建议采用第三方CDN,开通账号即可使用。关于CDN方面的内容,我们会在以后的内容中做重点介绍。
6)业务服务器:网站逻辑基于php-tlinkphp、thinkcmf、mysql、redis。MYSQL 服务提供静态数据的存储,REDIS 服务提供数据的缓存、存储动态数据。
以上便是对直播系统源码如何实现视频直播以及搭建服务器的简单介绍。搭建直播开发平台之前就是找到一款优质的直播系统源码,直播系统源码开发原理比其他软件更加复杂,而且相对于技术以及其他方面都会有一定的要求。直播系统源码的稳定性和安全性决定了后期搭建出的直播平台的流畅度、高并发承载及用户的产品体验,所以选择直播源码的时候一定不要为了贪图价格便宜,而选择安全性低,系统功能不会正常更新,bug一堆的源码。直播系统源码的开发需要经过推流端(采集、前处理)、服务端处理(编码、转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染和互动系统)。望采纳,谢谢
1 三屏播放 支持市面上常见浏览器收看,包括IE、火狐、遨游、谷歌等浏览器。 支持智能终端收看。VJLive支持HLS协议,运用HTML5语言实现了IOS系统和Android系统手机和机顶盒平台在线直播收看。
2 直播时移 直播提供时移功能,支持纯flash方式的实时回放,自动生成节目列表,可以在任意时间收看任意节目,打破传统的直播收看模式,观众不再因为不能回放而错过直播节目。
3高流畅度 集成了HTTP、TCP、UDP(SUDP、RUDP)和网关穿透模组(UDP穿透和RPNP穿透)及全球IP表,拥有极高数据收发速度和单机连接数,极大程度保证各种清晰度下的视频播放质量。 4广播级高清 实况直播时支持多种流协议和编码,可使用高清、标清码流,达到广播级效果,其中高清视频格式包括wmv/asf/wma/mp3/rm/rmvb/flv等。 5复杂网络环境自适应 采用了覆盖全球IP表、运营商地域IP段表等动态节点调整策略,支持各级网关穿透和内外网网关映射。同时采用了UDP、TCP传输自适应机制,当UDP传输不可用时自动切换到TCP传输,保证连通性。 6客户机及CDN自动化存储 收看者:缓存设置将自动存储收看过的视音频片段,供P2P分享使用,以减轻运营商带宽压力。 运营商:通过中心视频资源库,根据点播服务器收看者点击率,自动下载热门视频文件进行P2P分发。 7高速拖拉
使用独创的帧级预缓存读取技术,使得收看者在拖拉视频进度时,可以无缝跳转至拖拉处,立刻欣赏跨段影像。 8帧级跳转定位 采用独创的VJVOD优化的编码协议,可以精确跳转到以帧为单位的时间点,高度定位到比秒还精确的画面。 9富资源分发 使用完整视频、私有或第三方格式的视频缓存片段或加密内容等作为点播媒资。也可以发布任意格式的非媒体文件,作为P2P文件发布系统使用,例如SWF小游戏等等。 10收看进度记忆 将提供可以设置并二次开发的中断点记忆功能,方便客户可以继续收看节目。 11高速启动 通过HTTP协议、优化的编码模块、集群链接策略,达到即点即播的视频启动速度,无需收看者进行长时间等待便可开始收看视频。
既然说了大型,首先要考虑的就是高用户并发的情况。这就需要结合你实际用户端应用场景,视频都双向传输和简单的低通量的文本交互一定不是一个概念。做大型的系统,还要考虑平时的情况和突发的高占用率情况。
首先我们先对应用做一个分类:
1高带宽消耗累应用
这个方面的代表就是直播相关或网络教学领域。直播系统的大体原理,主播手机采集音视频、编码,然后推送一个视频流给服务器(实际上是一个做了负载均衡的视频服务器矩阵组)。然后负责实时流媒体数据流接收的服务器,会将流媒体数据流推送给分发服务器(现在有现成的CDN,这样开发难度就小了很多。)然后观众申请观看的时候,分发服务器就会将所申请的时时流媒体推荐给客户。
这么粗糙的应用就可能包换用户端权限管理服务器组,业务调度服务器组,不同区域IDC建立的接入服务器组,不同区域IDC建立的分发服务器组,分等级的数据存储服务器组,ai内容审核服务器组(基于分流实时分析,预设内容审核规则),归档视频存储服务器组,短视频评级推荐服务器组,应用兴趣行为分析服务器组。客户在请求交互的时候可能还会有一些缓冲的队列呀,nosql之类的(redis,memcache)。各组服务器的规格和数量都是根据同时并发的情况定的,在程序开发好的时间可以通过自动化的方式模拟高并发,再通过查看分析瓶颈,而对前期的规划做出合适的调整。
有些时间还要实现不经过分发,交互直通以降低延时。pk的连线的时候,太高延时是接受不了的。这个就不继续展开了。
还有网盘类应用也也很多类似,只是延时要求没那么高。传统的视频网站也是基本相同原理。
传统的微博也是类似的分发机制。
2低延时需求型
这方面一般是以网络游戏为主。对于一些点电子竞技类的应用,做到80ms以下的低延时是必须。服务器的核心响应速度和带宽的低延时是重点。这种服务器最好可以独享一条专线,或者在虚拟网络系统中设置一个更高的优先级,数据线优先同行也会尽可能的降低延时。至于服务器组之间的vpc也应该有一个更高的通过优先级,以保证服务器之间的访问延时极地。这种应用服务器,最好要支持核心运算,不过这个要开发的架构支持。
再就是后期用户量大的时候,做更新包下载的时候会采用分发服务器(CDN)。
3高突发的缓冲
这种都是电商网站,平时就是讲全段应用服务器做彼此依赖,后端选择一个大吞吐,大并发的后端框架(京东使用的go语言对高并发和数据挖掘就有很多优势,我也刚开始学习)。这种系统网元架构就简单很多,传统的负载均衡后挂着不同模块的应用服务器组,然后经过缓冲服务器组,之后到达数据服务器组和APIGateway。
日常的应用都是没啥问题,都是因为一些节日或促销,或爆款等发生临时性数据操作的拥堵。解决这种缓冲都方式有很多,比如临时快速读写缓存,消息队列等。甚至开发总线通信队列等待机制,很多解决方案。
现在系统本身的规划和后期都优化都有许多解决方案,现在的瓶颈往往是系统间的交互通信。
服务器种类各云服务商都称呼也不一致,总体说分为轻量应用服务器,负载均衡服务器,超算服务器(CPU和GPU两个方向,后者也常常被成为图形处理服务器。)数据服务器(常见的版本都有),文件服务器(nas和oss),分发服务器,缓冲服务器,数据分析服务器。我项目中使用大大类就这些了,也许有些我没用过和不知道的,希望大家在讨论区补充纠正。
希望对你认知有所拓展。
如果你是看CDN的东西看到的这句话,那么我可以来解释一下流程。“全局负载均衡技术将用户的访问指向离用户最近的工作正常的流媒体服务器上”。首先我们要明确几件事:
1、在CDN的案例图中,其实B和C不会在不同的城域。如果在不同的城市,一般会在那个地域也放置一个反向代理服务器或反向代理节点。B和C为同一地域,A为B、C的负载均稀器或调度器;
2、CDN的部署里,为避免单点故障或应对业务峰值,A并不是单台服务器,一般由多台服务器进行调度,一般采用LVS进行七层的负载和转发。通过LVS的负载均衡策略将业务转发至B和C,负载均衡策略可以进行设置,如轮询,权重轮询、随机等等;
3、CDN一般由DNS来做为用户流量调度,也是CDN的核心,即将用户的请求调度至距用户最近的节点,例如节点D,节点D通过负载均衡策略将请求分发至节点D后端的业务服务器E和F。
4、你看到的这句话,是指DNS层面的调度。
流媒体业务使用CDN的发布业务的前提和流程如下:
1、在流媒体业务服务器域名注册商修改域名的CNAME记录为CDN服务厂商的域名;(这一步是使用CDN的首要条件)
2、CDN服务厂商为业务设置不同地域的缓存节点,如北京、上海、美国等
3、不同地域设置的缓存节点具有不同的IP地址地址池,并且该节点内拥有业务调度器(LVS的DR)及真正的业务缓存服务器,缓存服务器通过类似Squid等程序定期缓存流媒体业务服务器的视频信息及网页信息,每隔一段时间进行更新请求;
4、用户通过DNS调度请求到某一节点时,该节点通过LVS技术将用户的请求调度至节点内某一以缓存节点进行处理,并返回结果给用户;(可参照LVS的工作模式)
5、当缓存节点有用户请求的内容时,将直接返回内容给用户,当缓存节点发现请求的内容不存在时,会主动返回流媒体业务的源服务器进行内容请求,并将结果缓存至缓存节点。
6、
用户最终拿到缓存节点上的视频内容及信息,由于通过DNS调度至用户最近的节点,通过LVS调度至最快最优的服务器进行处理,故加快了用户访问网站及视频
的速度。(视频的加速其实还有一种技术叫cache技术,即将视频提前下载到距用户最近的节点,用户看起来等于在局域网中查看)
DNS和CDN调度的流程如下:
1、用户访问流媒体业务的域名如“wwwabccom";
2、wwwabccom的cname记录为CDN服务厂商的域名,如wwwabccomcdncache01com;
3、用户的请求被转发至wwwabccomcdncache01com进行处理,即触发用户对wwwabccomcdncache01com域名的解析处理。DNS解析流程见图“DNS解析流程图”
4、
wwwabccomcdncache01com域名在权威服务器里配置的记录为多条的,即智能DNS,可参考DNSPOD,即一个域名可以根据地
域的不同配置不同的解析策略,源地址为北京联通的,即解析为用户指定的联通服务器IP地址,源地址为广州移动的,即解析的IP地址为用户指定广州移动的
IP地址。
5、DNS通过AnyCast技术进行三层负载均衡,类似于OSPF的等价路由,如8888这个地址实际为一个AnyCast地
址,即谷歌全球的递归DNS服务器均使用8888作为Global
DNS地址,当用户通过8888请求域名解析时会带上自己的DNS服务器地址进行请求,即8888会查询请求过来的客户端地址是哪里的IP地
址,如果是北京联通的,即将请求解析为北京联通的一个IP地址或解析为北京联通的一个负载均衡节点CNAME域名。
6、为了达到更精准备的DNS
解析调度,谷歌还研发了edns-client-subnet,即在DNS授权、递归、缓存上均支持该Edns协议,支持该协议后,用户在请求DNS域名
解析时,会带上自己客户端的源IP地址放在请求包里,而非客户端配置的DNS服务器IP地址。这样就有效的避免了用户使用Global
DNS服务器时不能调度精准的问题。(有关DNS授权、递归等问题可以参照RFC 1034和1035)
7、按照以上流程用户请求wwwabccomcdncache01com,会得到一个距离用户上网所在地域最近的一个CDN缓存节点的IP地址即楼主图中的反向代理服务节点。假设IP地址为1234。
8、用户请求1234的流媒体业务,节点1234通过LVS及其它负载均衡技术将用户的请求分发布该节点内最优最快的缓存服务器,如服务器E,IP地地址为19216814,即由19216814进行业务处理。
9,服务器19216814直接将结果返回给用户。
0条评论