前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >视频云转拉灾备——腾讯云挂掉引发的思考

视频云转拉灾备——腾讯云挂掉引发的思考

原创
作者头像
榴莲其实还可以
发布2018-07-25 19:26:47
1.9K0
发布2018-07-25 19:26:47
举报

故事背景

就在昨天,腾讯云部分功能挂了,经查实广州机房的光缆被挖断导致。当时也影响到了我们视频云转拉这边的业务。有个例子是,一个小客户有个流没有拉起,但是收到了已经拉起的回包。经过我们的分析,原因如下:当转拉请求下发到服务器(内网之间的通信,使用的是内网IP),服务器能收到并处理该请求,所以正常回包。当请求处理程序启动ffmpeg进程时,ffmpeg会去和源站建连(使用外网IP),由于光缆断了,外网肯定是不通的,转拉自然也不会成功。正因此也引发了我们关于转拉灾备的一个思考。

思考与解决方案

解决方案说起来肯定是很简单的,既然机器外网不同,那很简单,以后的转拉请求不发给这台机器就ok了。那现在问题就变成了:怎样知道这台机器不行了?

对此我们充分利用了转拉模块的上游模块——状态中心。解决方案:

1,ffmpeg进程定期上报心跳包到状态中心(上报的字段至少包括两个:进程所在ip, 进程状态);

2,状态中心定期(比如1分钟)统计下各ffmpeg进程发过来的包,以ip为作为关键字分类,统计该ip下正常的ffmpeg进程和异常的进程(对于网络这个问题,异常就是ffmpeg报建立连接失败错误)的次数。

3,当异常情况的比例达到一定的阈值的时候,我们可以认为这台机器有些问题了,暂时到不可用ip列表中。

4,状态中心隔一段时间(比如1小时)扫描一次不可用ip列表。将存在超过一定时间阈值(同样可以是1小时)的ip解禁。因为ip放入到不可用列表后,该机器不会收到转拉请求,所以不知道机器所处的状态,故需要手动删除。如果此时故障还未修复(比如外网依然不通),该机器很快又会加入到不可用ip列表中。

结语

阿里云挂完,腾讯云挂。像腾讯,阿里这样中国互联网超一流的公司,也偶尔会遇到因为容灾问题而导致的服务不可用问题。对于我们后台开发,很多服务经常会依赖于别人,除了指望别人做的可靠之外,也应该思考下如何从自身出发,加强程序的健壮性。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 故事背景
  • 思考与解决方案
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档