QQGame防专线中断系统介绍

先说说背景

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

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

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

编辑于

马同星的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java学习网

10个使用Java最广泛的现实领域

10个使用Java最广泛的现实领域 如果你是一个初学者,刚刚开始学习Java,你可能会想Java有什么用呢?除了Minecraft貌似也看不到其他用Java写的...

2348
来自专栏杨建荣的学习笔记

基于报警处理的思考(r9笔记第88天)

晚上在琢磨怎么把报警的处理实现自动化的功能,想来想去,发现其实很多内容都是相通,在纸上写写画画,简单理了理自己的思绪。 人嘛,有时候不逼着自己,只会更加懒惰,而...

3245
来自专栏Youngxj

什么是Go语言?

1722
来自专栏企鹅号快讯

地图开发科普篇:浅谈GPS大数据的实时处理和离线处理

2017/12/18 MONDAY ? 实时处理:Flume+Kafka+Storm+Mongo 数据实时处理是指通过Flume进行数据的的采集,将数据推送给K...

30710
来自专栏云计算D1net

如何使用软件定义网络增强云基础架构

软件定义网络 (SDN) 是一种网络方法,允许管理员通过抽象更低级功能来管理网络服务。SDN 将控制层面(用于确定流量发送到何处)与 数据层面(将流量转发到所选...

2639
来自专栏Python中文社区

Why Not Python?

Python是一款简单强大又好用的动态语言,但我不解的是,为何这样一个好用的语言,在国外已经流行了十几年,但在国内不要说流行,问很多人的答案都是...

1878
来自专栏沃趣科技

基于Oracle的私有云架构探析(连载一)@【DTCC干货分享】

云是当今最为热门的一个话题或者说技术,在数据库界也一样,Oracle 12G这个名字不硬生生被掰弯成了Oracle 12C,数据库云在我看来能给企业带来的第一价...

3895
来自专栏原创1

百度智能运维的技术演进之路

随着大数据、人工智能、云计算技术的日渐成熟和飞速发展,传统的运维技术和解决方案已经不能满足需求,智能运维已成为运维的热点领域。同时,为了满足大流量、用户高质量体...

810
来自专栏云计算D1net

开发者应该知道的 OpenStack 背后的设计准则

OpenStack是一种开源产品,得到了一大批志愿者和领薪代码贡献者的支持,它让人们意识到了一种全面审查的架构和一种深思熟虑的设计具有的重要性,这种架构和设计似...

3296
来自专栏CSDN技术头条

一个和大数据密切相关的组织——Apache软件基金会

想真正认识国际大数据的领域体系,你一定要了解一个叫做“Apache软件基金会”的组织,虽然大数据处理工具Hadoop是程序员开发出来的,但是毫不客气的说,Apa...

1975

扫码关注云+社区