先说说背景

  1. QQGame是一个全区全服的休闲类游戏平台和社区,主逻辑服务器部署在四大IDC,核心DB全部在深圳。对跨IDC的专线依赖度很高。

  2. 网平提供专线故障后切VPN的备份机制,当VPN也中断时QQGame在线会下降到0.

  3. 窄带IDC、孤岛IDC无法提供游戏服务。

再说说分析

专线断了进行容灾,无非是数据走外网。外网能抗住么?其实木有人能告诉你。

1.公网包量、流量测试

24小时包量测试:

压力:大约每分钟310w包,每个包为139Byte

结果:在24小时之内一共传输2202271493个包,

成功2202247061个包,失败24432个包。

失败率:0.0011%,

24小时之内失败一共只有5次,为网络抖动。

12小时流量测试:

压力:大约每分钟40w包,每个包大小为4k-10k

结果:深圳IDC入流量:100Mb/s,出流量: 150Mb/s,

收包数等于发包数,无丢包

2.网速测试

非高峰期(6月25日09点)测试结果如下表:

高峰期(6月26日21:30)测试结果如下表:

测试数据表明,

专线在闲时和忙时都很稳定。

外网在忙时ping值会有升高,跨运营商(红色)的ping值可高达200ms. 不夸运营商的情况ping值低于100ms. QQGame跨专线的流量用于玩家登录服务器时获取DB数据,游戏交互过程不受此延时影响,因此对于QQ游戏来说完全可以接受。

外网状况从包量、流量、网速三个方面都可以支撑QQGame跨地域服务器通信需求。

最后说说设计


正常状态下:MainSvr-àProxy---(专线)-àGameDB

专线中断了:MainSvr-àProxy--àOfProxy----(外网)-àObProoxy-àGameDB

惨绝人寰的事情发生了。。。。

专线中断并且外网中断,IDC处于孤岛状态。。

孤岛模式: MainSvr--àProxy--àOfProxy--àNewLCDSvr

偏远地区时可以使用的节省带宽模式:

MainSvr-àProxy--àNewLCDSvr(合并流水后发包给DB)---àOfproxy----(外网)-àObProxy--àGameDB

全貌图:

看看效果吧

QQGame在具备防专线中断容灾能力前,一旦出现专线中断故障,QQGame区域IDC的在线人数会迅速下降。。。趋近于0在线。。。。恐怖。。

7月19日的专线中断演习,系统进行内外网切换的决策的几十秒内有在线的轻微影响。切换完成后,在线完全无影响。

写在最后

QQGame的防专线中断系统的设计思路首先将其作为一个旁路系统,在standby状态时,尽量减少对系统核心架构的影响,没有带来任何额外的专线流量。(NewLCDSvr Cache填充是由正常的专线数据在IDC内ByPass完成。)

其次,作为容灾系统需要有自动化运营能力。否则,真正专线故障时,手动切换带来的时间损耗会大大降低系统的效能。

最后,QQGame这种多地域、多IDC部署的全区全服系统有其自身的特殊需求,在具备了足够大的用群体后才有防专线中断容灾的现实需求。在做系统设计的时候需要因地制宜为了产品、用户而去考虑系统设计,绝对不能为了容灾而容灾、为了设计而设计。共勉。


相关推荐

浅谈全区全服架构的SNS游戏后台
专线接入常见问题
如何有效避免IDC故障,腾讯云专家谈IDC联合运营经验
专线接入更多相关知识


此文已由作者授权腾讯云技术社区发布,转载请注明文章出处,获取更多云计算技术干货,可请前往腾讯云技术社区
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~

QQGame防专线中断系统介绍的更多相关文章

  1. AVR 嵌入式单片机芯片的中断系统介绍

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  2. 游戏全区全服和分区分服 QQ斗地主的设计

    游戏全区全服和分区分服  QQ斗地主的设计 https://cloud.tencent.com/community/article/164816001481011910?fromSource=gwzc ...

  3. QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年

    本文来自腾讯资深架构师杨志华的分享. 1.前言 也许没有多少人记得2004年发生的事情.但对于老腾讯来说,14年前的那个日子,2004年6月16日永远难以忘怀.这一天,QQ诞生5年后的腾讯在香港联交所 ...

  4. 转: 微博的多机房部署的实践(from infoq)

    转:  http://www.infoq.com/cn/articles/weibo-multi-idc-architecture 在国内网络环境下,单机房的可靠性无法满足大型互联网服务的要求,如机房 ...

  5. Zabbix探索:纠结的选择

    Zabbix拥有两种分布式部署的架构,分别是: Master-Node-Client: Master-Proxy-Client: 两者的区别什么的官方有介绍,但是太过于笼统,对细节介绍的太少,幸亏之前 ...

  6. Ligg.EasyWinApp-000: 一款Windows应用编程框架介绍

        本框架(解决方案)是一个Windows应用编程框架和UI库,通过该框架,不需任何代码,通过XML配置文件,搭建任意复杂的Windows应用界面,以类似Execel公式的方式实现基本的过程控制( ...

  7. 探秘:TriCore处理器中断机制

    1. TriCore与中断的简介 TriCore是德国英飞凌科技公司旗下的第一个为实时嵌入式系统而优化的统一的.32位的微控制器-DSP(Digital Signal Processing)处理器架构 ...

  8. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  9. 十天学会单片机Day1点亮数码管(数码管、外部中断、定时器中断)

    1.引脚定义 P3口各引脚第二功能定义 标号 引脚 第二功能 说明 P3.0 10 RXD 串行输入口 P3.1 11 TXD 串行输出口 P3.2 12 INT0(上划线) 外部中断0 P3.3 1 ...

随机推荐

  1. 使用fullPage.js遇到的问题以及翻译

    使用fullPage.js做一简单页面,遇一古怪问题:.section中的h1标签始终被一插件生成的标签包裹,导致样式调整好不困难!花费数小时排查为何会生成这样一个标签,最终在fullPage.js的 ...

  2. 每日一水之strcmp用法

    strcmp函数 C/C++函数,比较两个字符串 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1<str2,则返回负数: 若str1>str2,则返回 ...

  3. setTimeout小总结

    ▓▓▓▓▓▓ 大致介绍 今天看了一篇文章,觉得写得不错,所以学习了一下,这篇博客是我自己的理解和总结 原文:你应该知道的 setTimeout 秘密 主要内容: 1.setTimeout原理 2.se ...

  4. javascript运行机制详解: 再谈Event Loop(转)

    作者: 阮一峰 日期: 2014年10月 8日 一年前,我写了一篇<什么是 Event Loop?>,谈了我对Event Loop的理解. 上个月,我偶然看到了Philip Roberts ...

  5. Java实现二叉树的前序、中序、后序遍历(递归方法)

      在数据结构中,二叉树是树中我们见得最多的,二叉查找树可以加速我们查找的效率,那么输出一个二叉树也变得尤为重要了.   二叉树的遍历方法分为三种,分别为前序遍历.中序遍历.后序遍历.下图即为一个二叉 ...

  6. NSMutableAttributedString

    开发过程中,经常会遇到动态计算行高的问题, - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)op ...

  7. 网站SEO,HTTP请求的关键数字----6

    客户端浏览器向服务器请求一个网页素材. 那么网页素材是通过什么方式,什么顺序被下载下来的呢. 我今天做了个简单的测试. 首先,准备测试文件 写一个网页,网页中引用若干的资源文件. 同一文件的不同的参数 ...

  8. BZOJ 3401: [Usaco2009 Mar]Look Up 仰望(离线+平衡树)

    刷银组刷得好开心= = 离线按权值排序,从大到小插入二叉树,查找树中比这个数大的 CODE: #include<cstdio>#include<iostream>#includ ...

  9. 康复计划#4 快速构造支配树的Lengauer-Tarjan算法

    本篇口胡写给我自己这样的老是证错东西的口胡选手 以及那些想学支配树,又不想啃论文原文的人- 大概会讲的东西是求支配树时需要用到的一些性质,以及构造支配树的算法实现- 最后讲一下把只有路径压缩的并查集卡 ...

  10. 作为前端工程师,必须要学会的基本工具之一(AI)

    由于之前工作中一直使用的都是photoshop,所以对AI软件的使用并不是很熟,导致使用过程中,遇到了困难----字体无法选中.作为前端工程师都知道,一张设计图中有很多文字,如果纯手打那简直是要累死人 ...