先说说背景

  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. Openstack容器项目之Magnum

    本文以Newton版本为例. 1.Magnum简介 Magnum项目通过Openstack API能够在Openstack中创建基于容器的服务,但它本身并不直接对容器进行操作,而是通过Kubernet ...

  2. HUST 1586 数字排列

    1586 - 数字排列 时间限制:1秒 内存限制:128兆 91 次提交 36 次通过 题目描述 现有n个k位的数字,你的任务是重新安排数字每一位的位置,使得重新安排后这n个数字中最大的数字和最小的数 ...

  3. 微软Visual Studio二十周年:VS2017于3月7日发布

    二十年前的今天,微软正式发布Visual Studio 97.如今二十年已经过去,微软宣布全新的Visual Studio 2017即将在美国当地时间3月7日正式发布. VS97是Visual Stu ...

  4. PHPCMS 概念初学

    CMS是一个内容管理系统,主要是用来做企业站,也就是说我们在网上见到绝大部分的企业站都是用这个做的,有极少数的是用源生代码写的 如何安装? 1.从网站搜索下载安装包并解压 2.点击文件夹后显示一下两个 ...

  5. Spring-mvc介绍

    Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2   spring-mvc结构 1 ...

  6. 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)

    字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置. KMP 算法,全称是 Knuth-Mo ...

  7. java springmvc +spring+ mybaits 模块化开发框架 HTML5+css3.0+bootstrap响应式开发界面

    需要源码,请加QQ:858-048-581 系统模块 1.   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限       角色(基础权限): 分角色组和角色,独立分配菜单权限和增 ...

  8. HTTP和HTTPS协议

    网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合. URL:就是网址.http://www.hcios.com/archives/1547 URL就是资源的地址,位置.互联网上的每一个 ...

  9. Servlet支持上传多张图片

    首先前端的表单是这个形式: <form  target="_self" method="post" action="fileUploadMult ...

  10. YUM 安装及清理

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理 ...