微信红包【技术篇】——如何在服务有损的情况下保证用户体验【转载】

Boas  发表于 2015.3.24463浏览0讨论

腾讯大讲堂隆重推出【100亿次的挑战】系列海量服务之道2.0讲座,覆盖技术、产品、项目管理、支撑、支付5个维度。第一场【技术篇】3000名鹅厂员工参与,场面火爆!从今天起,大讲堂将陆续推出回顾文章,回馈广大用户。

讲师:Boas

分享主题:如何在服务有损情况下保证用户体验

羊年春晚因着微信摇一摇的介入,变得十分的不一样。而从项目参与者本身出发,100亿次摇一摇、10亿个红包等惊人数据,都是让我们很兴奋的,当然之所以撑起这么大的数量,服务器的多项优化起到了非常关键的作用。作为参与其中的客户端开发来说,我们能做什么?我们扮演的是什么样的角色?而面对春晚这个巨大的项目,我们从哪些方面入手设计?在这里跟大家做一点分享。

对于客户端同学来说,常常直面用户的体验问题,而从春晚这个项目本身出发,可预见的是,当时的服务将会有损,在这样的情况下如何保证用户体验,成了我们设计的一个核心。

一、春晚项目简介

春晚是一个什么样的项目?它与我们平时遇到的项目有什么不同之处?

1. 并发量大

春晚是在春节起见发生,而同在春节期间发生的还有“春运”。这两者之间虽然完全不同,但也有其相同之处——需求多、资源少。

春晚本身有着很高的收视率,再加上红包的引导,摇一摇的请求量必然会达到这个空前的高峰,服务器也面临着从未有过的压力。除了摇一摇协议本身,还有每个活动背后所需的资源。

2. 项目复杂

春晚项目不是只有抢红包的10分钟,它的整个过程包括电视互动、好友互动、企业红包、人文艺术等多方面的产品,而其中的细节涵盖到每个节目之间的切换等等。不论是项目参与人数还是产品需求,都是一个复杂的项目。

3. 用户预期不可控

绝大多数互联网产品都是希望有着越多越好的用户数。但是对于春晚这个项目,却不尽然。由于资源有限,我们希望“见者有份”,尽可能使所有参与者都有满意的收获。因此我们需要对用户预期尽可能地做一些控制。

二、高并发我们怎么做?

1.尽可能少请求资源

春晚期间除了摇一摇协议本身的高并发之外,还需要极多的资源请求,如明星拜年的资源、企业红包资源、节目单等等。面对这些资源压力,我们设计了资源预下载的方案。

客户端通过服务器的通知机制,获取资源信息,并启动下载,得到资源包。由于这些资源都有着保密性需求,所以我们下载得到的资源包都是加密了的。在活动临近时,客户端再获取资源加密的控制信息,并进行解密。

另外很重要的一点,我们在整个启动下载、下载成功、重试下载、解密成功等各个环节处都做了上报,监控每个资源的准备情况。

通过上面的数据展示可以看出,我们很好地平滑了资源下载的压力。

2.优化404,提高用户体验

纵然我们有了资源预下载的方案,但也不能保证每个客户端都完全地做好了资源的准备,所以,在异常时,我们依旧紧紧关注着用户的体验。

首先,我们设计了彩蛋。在用户可预期的活动之外,加入一些搞笑的彩蛋,不仅缓解服务器的压力,同样能够给到用户趣味感。

另外,我们美化了404。在除夕夜这样合家欢聚的时刻,我们避免数字和科技用语。你看不见“服务器繁忙”“请稍后再试”等冷冰冰的话语,我们给你的是体贴温暖的“陪家人说话”。

结合节日的气氛,我们还设计了一个404页面,鞭炮+服务器。一个作为技术人员不愿见到的界面,但又是一个精巧的设计。这个界面表示服务器这时候压力真的巨大了,但是这个界面给用户带去的感受是新奇,是无限的想象。“鞭炮下面挂的是礼盒吗?”“我是中奖了吗?”最终一声哈哈大笑,在春晚这个项目中,完美地体现了有损服务下保证用户体验这个价值观。

三、项目复杂我们怎样来稳定?

1.方案要简单

精细的方案设计的确可以带给我们非常细致的体验。但是也意味着有着极多的技术细节要处理,这样带给大家的就是系统更加复杂,稳定性的降低。所以,我们不得不弱化一些灵活性,来得到我们需要的稳定。

为了保护服务器,可以支持服务器告知限流时间,限流期间不做请求,减少服务器压力。然后限流时间的设定就是一个需要考虑灵活和稳定双重标准的设计。

简单地由服务器传参数作秒数,充分具备灵活性,但若出问题,也有可能出现几百甚至更到的限流时间,将会导致不可用。

若是有客户端写死,就充分稳定,但也完全不灵活。

两者兼顾,最终协定共用一份枚举,服务器传参表示限流level,客户端查得相关时长,如此,一来保证限流时长都在可接受范围内,二来限流时长可由服务器控制。

2. 异常要简单

程序运行中,有很多异常会出现,如:企业资源未下载时,去下载?明星拜年没资源时,跳网页?节目ID不匹配时,保留匹配的部分?面对这些问题,我们依旧从稳定性出发,简单处理,直接进入美化过的404。

3.系统要可扩展

这个项目中,有着很多我们不可预知的变化。系统的稳定,除了很多逻辑要简单之外,必要的扩展性,也是保证可稳定运行的重要因素。在设计中,我们加入通用H5的设计,而这个设计,也是在两次预热和“一年又一年”的需求中,起到了至关重要的作用。

四、用户预期我们怎么控制?

1. 运营位的引导

在红包详情页,设计加入运营位,可引导至春晚摇一摇。这是一种相对较弱的引导方式。

2. 红点提示引导

红点提示是目前常用的提示能力。在春晚项目中,我们对红点进行控制,可以分平台下发、红点加入有效期控制、一次下发中带有多个红点等。然而,数据标明,红点的能力有限,只能带来一次性的点击量,不能够持久引流。

3. 倒计时Banner

用户看到红点,进入活动后,一次的摇一摇后没有结果便会离开。而倒计时的设计,给用户持久的能量,使用户持久参与活动。

五、我们还做了什么?

上述的阐述都在描绘我们如何设计,如何从设计上尽力地匹配海量服务的特点,但是并不能够真正100%地解决一切问题。我们在实践过程中,还意识到一些项目进行中要注意的问题

1. 关键问题要追根究底

2. 把握每次预热的机会

由于没有发布前的灰度过程,我们只能依靠预热的机会,发现问题、解决问题。也只有在预热过程中,我们尽力去发现问题,才能真正明确自己的能力,更好地优化,已达到目的。

五、小结

面对像春晚这样海量服务的项目,我们认为“一定会挂,只是怎样更优雅?”我们可以用这样一张图来理解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 重读《月童度河》里“相爱”一章。 处境不同。确切地说是心境不同。陷入情爱的沼泽,与远观而不踏入有许多差别。 从某种...
    王小拙阅读 281评论 0 0
  • 阴雨绵绵的日子总是引发思考,浑浑噩噩工作多年好像仍在原地踏步。突然有了一丝紧迫感与方向感,这样不上不下的生活几乎从...
    Jolie26阅读 505评论 0 51
  • 这是维克多·雨果对于圆明园的描述。我能想象到她有多美。但是当我走进她时,却感受不到她昔日的辉煌。我曾在初中历史课本...
    小胖子Carol阅读 707评论 3 2
  • 看完了江哥的HTML视频,佩服自己能3天看完56个视频,56个视频非常详细的概括了html标签元素的讲解,佩服自己...
    yeH_8f87阅读 207评论 0 0