最近遇到了一个BUG,但是它的出现又存在概率,所以挺有意思的。

BUG的现象是:视频在播放过程中(已播放进度<已加载进度),首先出现了缓冲的动画效果其次呈现雪花背景并且抛出异常"视频连接超时" 。或者首先出现了缓冲的动画效果其次视频返回从头播放。

定位到BUG的原因是:某1台服务器存在不稳定的因素,导致视频播放过程中出现了中断。(也就是外部原因)(不过外部原因对服务造成影响的大小是否可以在代码层面优化?可以补充和思考)

具体说说----

当我们访问1个视频网站,打开了某1个视频,那么接下来会有几个步骤:

[1] 解析XML文件

[2] 与视频源建立连接

[3] 视频开始播放

那么,这个BUG的原因是在第[2]个步骤,为啥会存在概率呢?

网站的视频源会存放在多台服务器上面,比如放在这3台服务器上:flv.bn.youtube.com | flv4.bn.youtube.com | flv5.bn.youtube.com

这样做的目的(1)是不会因为某1台服务器坏了就影响到用户看不了视频,目的(2)是分散用户访问对服务器的压力,

同时,程序员在代码内也事先配置了flv、flv4、flv5被访问的概率,

所以,用户有时候是从flv.bn.youtube.com获取视频源,有时候是从flv4.bn.youtube.com获取视频源,有时候也可能是从flv5.bn.youtube.com获取视频源,

当用户的某1次请求是与那台不稳定的服务器建立的(即:在不稳定的服务器上看视频,比如假设今天flv.bn.youtube.com不稳定),就会出现这个BUG了。BUG的表现形式虽然有所差别,那是受到网络环境和服务器配置等因素共同影响的了。

[ 2014-07-03 16:22:27 ] YoutubePlayer xx.xxxx
[ 2014-07-03 16:22:27 ] Chrome ooooo
[ 2014-07-03 16:22:27 ] WIN ooooo
[ 2014-07-03 16:22:27 ] sid:xxxxx
[ 2014-07-03 16:22:27 ] vid:ooooo
[ 2014-07-03 16:22:27 ] topicid:xxxxx
[ 2014-07-03 16:22:27 ] pltype:ooooo
[ 2014-07-03 16:22:27 ] iplimit:xxxxx
[ 2014-07-03 16:22:27 ] videoadv:http://xxx.ooo.xxx.ooo.xml
[ 2014-07-03 16:22:29 ] _m:1, _b:0

[ 2014-07-03 16:22:29 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv)
[ 2014-07-03 16:22:29 ] false | NetStream.Play.Start
[ 2014-07-03 16:22:29 ] duration:437.24
[ 2014-07-03 16:22:30 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv)
[ 2014-07-03 16:22:30 ] true | NetStream.Play.Start
[ 2014-07-03 16:22:30 ] ns.play(http://flv.bn.youtube.com/xxxxx.flv?start=2129&end=33031317)
[ 2014-07-03 16:22:30 ] true | NetStream.Play.Start
[ 2014-07-03 16:22:31 ] true | NetStream.Video.DimensionChange
[ 2014-07-03 16:22:31 ] true | NetStream.Buffer.Full
[ 2014-07-03 16:22:46 ] true | NetStream.Buffer.Flush
[ 2014-07-03 16:22:48 ] true | NetStream.Play.Stop    

【有意思的BUG】视频连接超时的更多相关文章

  1. 关于MySQL的wait_timeout连接超时问题报错解决方案

    bug回顾 : 想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: ### Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsExce ...

  2. 关于Oracle连接超时的问题

    测试环境ORACLE 11.2.0. 如果连接池设置单个连接闲置时间大于数据库连接超时时间,则连接池中的连接发出数据请求时会出现Connect timeout occurred错误, 这是由于连接超时 ...

  3. MySQL的8小时连接超时时间,导致系统过夜即崩溃,报错Could not roll back Hibernate transaction

    2014年3月开始给单位开发<机关规范化管理网络平台>,10月底成功上线运行,但是存在一个bug: 部署环境: apache tomcat 6.0.41 + mysql5.5 + jbpm ...

  4. Linux Vsftpd 连接超时解决方法(被动模式)

    http://blog.csdn.net/qq_15766181/article/details/46554643 使用 FileZilla FTP Client 连接 Vsftpd FTP,在没有配 ...

  5. 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法

    1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...

  6. SQL Server 连接超时案例一则

    上周六,一工厂系统管理员反馈一数据库连接不上,SSMS连接数据库报"连接超时时间已到.在尝试使用预登录握手确认时超过了此超时时间.......", 如下截图所示: 另外远程连接也连 ...

  7. SSRS报表连接超时的问题

    这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于 ...

  8. Linux Vsftpd 连接超时解决方法

    Linux Vsftpd 连接超时解决方法 2013-11-13 10:58:34|  分类: 默认分类|举报|字号 订阅     解决方法(http://www.lingdus.com/thread ...

  9. (转)hbase master挂掉-zookeeper连接超时原因

    link:http://www.51testing.com/?uid-445759-action-viewspace-itemid-812467 并行运行hbase删表,建表操作,多个表多个regio ...

随机推荐

  1. 移动端布局,C3新增属性

    <html5拖拽> 1.给元素设置 draggable="true" 属性,这个元素就可以被拖拽了 <拖拽元素事件> 2.ondragstart 拖拽前触发 ...

  2. Cornerstone.js使用相关

    官网地址:https://github.com/chafey/cornerstone 简介: Cornerstone is an open source project with a goal to ...

  3. 关于一点jeesite

    最近刚接触jeesite 深深被这个功能强大的框架所折服,虽然其中有一些地方还不完善,但也不妨碍我们通过jeesite提高我们java水平的大门. 这两天在网上一直在找关于jeesite的文章,看来看 ...

  4. 今天真开心,终于知道怎么打包apk了

    1.函数上下文的产生,并不是函数定义时决定的,而是函数调用时产生的:来个栗子 function creep(){return this;} console.log(creep()) var sneak ...

  5. 浅谈Ajax 异步的几点细节

    1.浏览器执行到Ajax代码的这行语句的时候,发出了一个HTTP请求,欲想请求服务器上的数据.服务器此时开始I/O,所谓的I/O就是磁盘的读写,需要花费一些时间,所以不会立即产生下行的HTTP报文: ...

  6. Jsp页面用table表格来让文字和文本框对齐

    1, border="0" cellpadding="0" cellspacing="20", 第一个是页边距要设置0,第二个是用来指定单元 ...

  7. Java虚拟机:GC算法深度解析

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 在前面的文章里介绍了可达性分析算法,它为我们解决了判定哪些对象可以回收的问题,接下来就该我们的垃圾收集算法出场了.不同的垃圾收集算法有各自 ...

  8. CentOS-7.2安装Ambari-2.4.2

    一,Ambari 是什么? Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目.目前最新的发布版本是 2.4.2. ...

  9. 【Java IO流】File类的使用

    File类的使用 Java中的File类是在java.io.File中,Java.IO.File类表示文件或目录. File类只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. 一 ...

  10. openjudge8465:马走日 [搜索]

    描述 马在中国象棋以日字形规则移动. 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. 输入 第一行为整数T ...