陌陌争霸9本防御图为什么从别的服转四服转不进去

土豪。求告诉 328的基金 是不是一共送两个转服文书~_陌陌争霸吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:17,198贴子:
土豪。求告诉 328的基金 是不是一共送两个转服文书~
刚刚买的时候送一个。签到30天后再送一个。是不是 求告知。感谢!!?
居然一个个都说我是土豪...
我钻石?用了7000钻,豆...
如上图,大家给点意见...
不多说了 一张图 这已经...
最火爆的手游,最高端的礼包,就在淘手游游戏中心
退游那么多,返 现才是硬道理。
老婆生孩子没钱买奶粉?没事,淘手游游戏中心,买单!
贴吧热议榜
使用签名档&&
保存至快速回贴谈谈陌陌争霸在数据库方面踩过的坑(排行榜篇) - 推酷
谈谈陌陌争霸在数据库方面踩过的坑(排行榜篇)
为什么大部分网络服务都需要一个数据库在后台支撑整个系统?
这通常是因为大部分系统的一个运行周期都很短,对于传统的网站服务来说,从收到一个 HTTP 请求开始,到终端用户收到这个请求的结果为止,就是一个运行周期。而其间可能处理的数据集是很大的,通常没有时间(甚至没有空间)把所有数据都加载到内存,处理其中涉及的一小部分,然后保存在磁盘上再退出。
当数据量巨大时,任何对数据的操作的算法和数据结构都需要精心设计,这不是随便一个程序员就可以轻松完成的任务。尤其是数据量大到超过内存容量时,很多算法和数据结构对大部分非此领域的程序员来说都是陌生的。本着专业的事情交给专业的人来做的原则,一般系统都会把这部分工作交给独立的数据库来完成。
对数据的操作只有抽象的足够简单,系统才能健壮,这便有了 SQL 语言做一层抽象,让数据管理的工作可以独立出来。甚至于你想牺牲一部分的特性来提高性能,还可以选用近年来流行的各种 NOSQL 数据库。
可在 MMO 游戏服务器领域,事情发生了一点点变化。
数据和业务逻辑是密切相关的,改变非常频繁。MMO 服务器需要持续快速的响应用户的请求。我们几乎不可能把一切数据都放在独立的数据库中,比如玩家在虚拟世界中的位置,以及他所影响的其他玩家的列表;玩家战斗时的各种属性变化,还有和玩家互动的那些 NPC 的状态改变……
最大的矛盾是:MMO 游戏中数据集的改变不再是简单的 SQL 可以表达的东西,不可能交给数据库服务期内部完成。无论什么类型的数据库,都不是为这种应用设计的。如果你硬要套用其它领域的应用模式的话,游戏服务器只能频繁的把各种数据从数据库中读出来,按游戏逻辑做出改变,再写回去。数据库变成了一个很低效的数据中转中心,无论你是否使用内存数据库,都改变不了这个低效的本质。
我听过无数从别的领域转行到游戏领域做开发的程序员设计出来的糟糕系统。他们最终仅仅把数据库当成一个可靠的数据储存点和中转点,认为把所谓重要的数据写进数据库就万事大吉,然后再别扭的从另一个位置把数据从数据库读出来使用。系统中充满了对数据库的奇怪异步回调用来改善系统的反应速度,而系统却始终步履阑珊。能做对已经是极限了,更何况游戏系统不仅仅是输入输出正确就是正确,如果超过了应用的响应时间,一切都是不正确的。
为了让系统健壮,构架师在构架系统时,一定会把系统隔离成不同的模块,并尽量简化模块间的沟通规则。这样你可以单独校验每个模块的质量,必要的时候可以更换。几乎没有人会因为效率或开发方便等原因而把应用代码写到 OS 内核中去跑就是这个道理。
每个模块只对输入它的数据负责,保证输出的正确。通常测试也只对这个正确性负责。同学们最容易忽略的一点是,每个模块都对它输入数据的处理速度有一个上限,也就是它的吞吐量。
一旦输入速度大于处理速度,模块实现的再正确也是百搭。因为永远都不会有输出了。
对于大部分模块,只要内存管够,这都不是问题。实际运作的系统中很少有持续大数据量的输入的,从一个较长的时间看,总的数据输入是小于处理能力的,暂时没能处理的数据堆积在内存就行了。
凡事都有例外。一个健壮的系统都需要对例外做处理。一个工作在 server 模式的数据库是这样解决这个例外的:它会支持查询连接的并发,并发的查询相互间对计算资源的占用是公平的,相互不影响(至少是设计上的理想)。而操作系统或数据库本身会限制并发的连接数,一旦达到最高连接数,系统会拒绝服务;这样就把超过处理能力的输入挡在了模块外面。按这种设计,就不会有输入(只要能抵达)永远没有回应了。
可惜,这样做的代价是,你必须在模块间加入请求失败的处理。一个设计不谨慎的系统最容易在错误处理上栽跟头。他们总是期望任何一个模块都能正确处理上级的请求。
btw, 为什么 12306 的订票系统在高负载的情况下完全不可用?就是这点没处理好。我指的是,一个实现正确的系统,一定不会连网页的刷不出来,不给用户正确的提示,哪怕只是错误提示;也不应该在高负载下,有效处理能力急剧下降。我指的是,一旦用户能进入正常流程,就应该顺利把至少一个环节顺利完成,而不是突然就卡在那里没有任何回应。
快跑题了。我谈到这点,其实是想表达,说的容易,做起来是很难的。下一篇我会写到我们在过年前出的一个事故和这个就有一些关系。
八卦时间:
陌陌劲舞团是陌陌游戏平台上线的第 2 款游戏。我们的陌陌争霸还在开发的时候,这款游戏就打算上线了。我对这个产品有限的了解都是道听途说,所以如果有更清楚内情的同学发现说的不对,也请谅解。对于技术问题,我想八卦的真相就并不那么重要了,有则改之,无则嘉勉。
劲舞团这个品牌原本是属于韩国人的,但这款游戏在国内曾经异常火爆,在国内代理它的久游也就买下来 IP ,自己制作手机版。据我所知,陌陌劲舞团完全是在上海开发的,没韩国人什么事。
这是个比较简单的游戏,至少服务器部分很简单,也就是统计下分数,查查排名,以及解决一下收费问题而已。刨掉这些部分,它就是个单机游戏,根本不需要服务器。
因为劲舞团的品牌名气,以及陌陌巨大的用户群,游戏一上线就在 ios 免费榜飚上去了。如果不是企鹅公司看不顺眼,立刻上线了节奏大师,估计还会在榜单上更火一些。事后证明节奏大师的上线也很仓促,完全是为了打击竞争对手抢着上的,因为后者的服务器也不稳定,很快就挂掉了,完全不像一个大公司应有的质量。
陌陌劲舞团顺利拉来了用户后,第一天服务器就出了状况,重启了几次后完全不解决问题。所以决定停服休整。一停就是三天。当时我就纳闷了,哪有修个小 bug 预计要三天的?这肯定是有结构性问题了。当时我们的项目按计划也就最后半个月的时间了,本来陌陌的人督的我们很紧的,一下子人全飞去了上海。
一周后陌陌劲舞团才重新上线,远超过当初预计的 3 天。事情一解决,陌陌的技术班底,从 CTO 到下面大多数人,全部飞到广州和我们开会,让我们重视服务器稳定性问题。会议内容主要是强调陌陌平台初期导入用户瞬间爆发量巨大,以及了解一下我们的设计细节确保没有大的问题。我所了解到的八卦就是在这段时间听来的。
陌陌劲舞团使用的是 MongoDB 。似乎这玩意很受游戏开发者喜爱。我想主要是因为用起来简单直接吧。游戏从业者如果之前没有别的领域的开发经验,对数据库这东西一知半解的人居多。尤其是从客户端开发过来的人,他们通常的习惯就是看 API 文档,了解怎么用看起来正确就够了。然后上线测试一下,好像也对,工作似乎就结束了。就算有压力测试,也很难做到和生产环境一致。
上线前,据说双方沟通过。陌陌方想确认系统能不能横向扩展,得到的答复是可以:加硬件即可。我想陌陌劲舞团开发方的思路是这样的:我们的服务器系统很简单,不都是过一下数据库么?MongoDB 是被很多人验证过的,不会在这么简单的业务中出问题吧。至于负载,不是还有 mongos 么?放心啦,没事的。
最终的直接问题出在排行榜上。当有两万人在线时(没错,才两万人而已),大量用户的排行榜查询阻塞了数据库。导致不仅仅是排行榜刷不出来,连冲值业务也受到了影响。土豪们充不进去钱,谈什么玩游戏啊。最终产生了雪崩,整个数据库都不正常使得游戏系统工作不起来。
为啥用了这么长时间才修好这个 bug ?
负责陌陌劲舞团的服务器开发的人在项目做完就离职了。想想一个设计有问题的系统交给非设计者维护有多糟糕吧?任何清醒的程序员都知道,这个时候即使是重写也比改问题简单。陌陌的同学做了个正确的决定,直接派自己的人驻留在上海,把服务器重新写了一遍。
陌陌的技术背景是 Redis 的,他们的系统用 redis 构建,所以重写就用了 redis 取代 mongodb 。写到这里,我完全没有 redis 和 mongodb 谁好谁差的意思。关键在人,你对什么熟悉就用什么,哪种数据库都能对付这点小业务,关键看你能不能用对。
Redis 里正好有一个有序集(Sorted Set) 的数据结构,你用 ZADD 插入完数据后,它就天然有序了。这个插入是 O( M * log(N)) 的时间复杂度,基本可以满足需求。而用 ZRANGE 查询榜单仅需 O(log(N)+M) 的时间复杂度。
那么使用 Redis ,利用 sorted set 做排行榜系统是我们的唯一选择么?绝对不是。我们也不可能为了这个特性必须选择 redis 做数据库。但这个例子可以说明:如果数据库提供内在的特性可以对数据集做一些操作,我们就直接用,但需要了解这种操作的性能。它需要和整个系统对它的性能期望匹配。
陌陌劲舞团使用 mongodb 内置的排序功能去做排行榜本也不是大问题。或许仅仅只是实现的人对 mongo 不熟悉造成的性能低下。这些随着系统重建已经无法深究了。但核心问题是,仅仅一个排行榜系统的错误实现为何会影响整个系统的稳定性?
下面就是我的猜测了:
许多程序员为了提高数据库的吞吐量,并不是一个事务就给数据库建一个连接,用完就关掉的。因为新建 TCP 连接是个开销较大的操作。维持太多连接对系统也是一个开销。同学们喜欢做一个叫做连接池的东西,在系统其它部分和数据库对接的地方走这个连接池。只要一个旧有连接没有断开,就一直把对数据库的请求通过固定连接发给数据库,等待返回。
在数据库的吞吐量满足系统需求的时候,这个模块很容易实现正确。但一旦超出需求,连接池上的数据就会越积越多,数据库查询越来越慢。而调用数据库的模块却不觉得这是问题。
正确的行为应该是让连接池快速反馈,断开并扔掉不可能处理完的请求,让请求方把这个不能处理的错误反馈到上个环节,直到流量被限制在合理的范围内。整个系统才能不至于崩溃。当错误被迫反馈到玩家那里时,他顶多看到的是查询失败,而不太会影响到别的功能。
陌陌争霸怎样做排行榜的?
在上一篇里就有同学问道,如果你们不用数据库,怎么做排行榜呢? 其实我在上一篇正文里就有解答:
“服务器只是在不断的创造新数据并让这些数据在内存中流通而已,它没有任何需要从外部读取数据。如果内存无限大,且服务器永远不会当机,数据库这个设施没有存在的必要。”
排行榜单也是数据之一,游戏服务器开服一刻起,没有任何玩家有排名信息。随着玩家名次更替,榜单才逐步形成。我们只需要在玩家分数变化的时候同步榜单的变化即可。而玩家查询仅仅是取走有序的榜单而已。
你看,这个过程和数据库无关不是?需要设计的是调整榜单的算法,和榜单的数据结构以保证维持榜单的性能足够强就好了。因为玩家名词更替的频率远小于玩家网络包的频率,那么这个模块的处理能力所需要的下限很容易满足。我们不用考虑处理不过来的情况。
针对陌陌争霸我们是这样做的:
陌陌争霸中用于排名的分数区间不大,也就是 0 分到 5000 分。而参与排名的人数众多,数以百万计。对百万用户做插入排序,每个插入即使是 O(N) 的也不可接受。可事实是大量玩家的分数相同,都是并列排名的。所以我们只需要做 5000 个桶,每个桶里仅记录这个分数有多少个人就可以了。
当玩家分数变迁,把原来的桶减一,新的桶加一。这个操作就是 O(1) 的。
而排行榜的查询仅需要把当前分数靠前的桶累加,就能获知查询者的名次。对于上百万玩家,看到哪些人和你并列的人的名字是没有意义的。这个查询虽然是 O(n) 复杂度,但 n 只有区区 5000 ,还可以做 cache 以应对查询频率远高于更新频率的情况。
真正需要精确知道人名的是榜单的前 200 个人,而对前 200 个人做插入排序也很快,所以并不会造成性能问题。
我们在系统的单点做排行榜的维持,完全没有外部数据库操作,它只是一小段操作普通内存结构的 c 代码。而这个单点远远成为不了整个系统的热点。
我们在系统临时退出时,把已经排好的榜单落地,下次启动的时候恢复。但也不必完全信任落地的数据,可以用离线脚本检索整个数据库重新生成一份正确的榜单。所以数据库中的榜单只是被 cache 起来而已,系统运行期间是不需要写入数据库的,也不用担心数据丢失。
好吧,还是没谈到我们自己踩的坑,就又到了吃饭时间 :( 。明天我将写写陌陌争霸在运营期间遇到的第一起数据库事故,它和 mongos 有关。同时也会谈谈我们在代理狂刃期间帮狂刃填的一些和 mongodb 有关的坑。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致四服工会招人啦_陌陌争霸吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:17,198贴子:
四服工会招人啦
上海滩争霸2级工会招人啦,不限等级,但要活跃,工会ID:456207………
本人想转个区88万战斗力...
无段位要求,大神与萌新...
上个帖子没说太清楚,重...
公会贡献前10名给予发放...
来一副荣耀吧,老妹
贴吧热议榜
使用签名档&&
保存至快速回贴《陌陌争霸》再开新服 四重好礼等你拿|宝石|公会|时间_新浪新闻
  原标题:《陌陌争霸》再开新服 四重好礼等你拿  自从移动社交平台陌陌推出城堡掠夺类手游《陌陌争霸》后,玩家数量不断攀升,目前已经突破663万。面对玩家如此高涨的热情,近日从《陌陌争霸》传来好消息,不仅新开设了新服32服,而且还有多重大礼相送。硝烟已经四起,战争一触即发,你做好准备了吗?
  一、新玩家优惠 首充赠豪礼
  活动时间:即日起至永久
  活动期间,首次充值任意金额将获得超值首充大礼包!
  首充大礼包:宝石*500、中箱粮食*30(300W)、中箱银两*30(300W)
  二、登录有好礼 七天欢乐送
  活动时间:即日起至8月3日23:59 :
  活动期间,连续登录游戏达到一定天数,将获得超值登录礼包哦!
  登录1天:宝石*100、小采集加速*1
  登录2天:宝石*100、随机迁移*1
  登录3天:宝石*100、造兵宝石*100
  登录4天:宝石*100、指定迁移*1
  登录5天:宝石*100、建筑宝石*100
  登录6天:宝石*100、令箭*1
  登录7天:宝石*100、珍贵宝箱*1
  三、升本领奖励 超值送福利
  活动时间:即日起至永久
  活动期间,大本等级达到一定条件,可领取额外奖励哦!【每日任务】-【升本奖励】中领取
  大本1级:随机迁移*1、小采集加速*1、小箱粮食*10、小箱银两*10、50时间宝石箱*1
  大本2级:随机迁移*1、小采集加速*1、小箱粮食*10、小箱银两*10、150时间宝石箱*1
  大本3级:免战8H*1 、小采集加速*2、小箱粮食*20、小箱银两*20、300时间宝石箱*1
  大本4级:随机迁移*1、小采集加速*2、小箱粮食*30、小箱银两*30、300时间宝石箱*1
  大本5级:指定迁移*2、大采集加速*2、小箱粮食*30、小箱银两*30、300时间宝石箱*2
  大本6级:免战8H*1、大采集加速*2、中箱粮食*10、中箱银两*10、300时间宝石箱*2
  大本7级:免战8H*1、大采集加速*2、中箱粮食*20、中箱银两*20、300时间宝石箱*2
  大本8级:令箭*1、矿洞修复锤*2、小坛美酒*30、小坛魔能*20、300时间宝石箱*3
  大本9级:免战8H*1、矿洞修复锤 *2、小坛美酒*30、小坛魔能*20 、300时间宝石箱*3
  大本10级:转服文书*1、矿洞修复锤 *2、小坛美酒*40、小坛魔能*30 、300时间宝石箱*3
  大本11级:指定迁移*2、免战8H*2、小坛美酒*40、小坛魔能*30 、300时间宝石箱*3
  四、新服冲冲冲 公会大比拼
  活动时间:即日起至8月3日23:59
  活动内容:
  截止8月3日23:59,公会战力(所有成员战力总和)排名前5的公会,其所有成员将获得超级排名奖励哦!
  公会战力第一:所有成员获得大箱粮食*16(800W)、大箱银两*16(800W)、公会金锭*15000
  公会战力第二:所有成员获得大箱粮食*12(600W)、大箱银两*12(600W)、公会金锭*10000
  公会战力第三:所有成员获得大箱粮食*8(400W)、大箱银两*8(400W)、公会金锭*6000
  公会战力第四:所有成员获得大箱粮食*6(300W)、大箱银两*6(300W)、公会金锭*4000
  公会战力第五:所有成员获得大箱粮食*4(200W)、大箱银两*4(200W)、公会金锭*2000
  温馨提示:
  成员奖励是需要在活动结束前在公会的成员,退出的成员是不会获得奖励哦,所以请城主们注意了,活动未结束请不要离开公会哦!
  作为国内第三大移动社交平台,陌陌于2011年下半年上线首款联运游戏,至今已陆续推出包括《陌陌争霸》《陌陌熊熊消》《陌陌捕鱼》等作品,而且此前在陌陌游戏中心上线的多款游戏均取得了不错的成绩。凭借独特的地理位置特性以及群组所构建的社交生态,陌陌平台正受到越来越多的关注。
  本稿件所含文字、图片和音视频资料,版权均属齐鲁晚报所有,任何媒体或个人未经授权不得转载,违者将依法追究 责任。
这次普京终于在南海问题上作出了最实际、最大力度的支持次是联合军演:俄罗斯舰队将开赴南海,与中国舰队展开海上联合演习。
文艺的问题,实质上还是人的问题,文艺是不是奴隶,取决于文艺工作者是不是奴隶。
希拉里和特朗普的民调支持率胶着,谁都没有绝对的胜算,因此,双方对丑闻的管控能力是胜负的决定性因素。希拉里在11月8日当选美国总统的可能性,将更多取决于特朗普失误的大小。
我没有道理地相信,任何一种文字,不吃苦,体会不到苦难,写不出苦涩,一个作家永远成为不了大师。

我要回帖

更多关于 陌陌争霸11本防御图 的文章

 

随机推荐