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

羊年春晚因着微信摇一摇的介入,变得十分的不一样。而从项目参与者本身出发,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. 把握每次预热的机会

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

六小结

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

原文发布时间为:2015-03-27

时间: 2024-11-03 11:45:11

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

【100亿次的挑战】之如何在服务有损的情况下保证用户体验

讲师:Boas   分享主题:如何在服务有损情况下保证用户体验   羊年春晚因着微信摇一摇的介入,变得十分的不一样.而从项目参与者本身出发,100亿次摇一摇.10亿个红包等惊人数据,都是让我们很兴奋的,当然之所以撑起这么大的数量,服务器的多项优化起到了非常关键的作用.作为参与其中的客户端开发来说,我们能做什么?我们扮演的是什么样的角色?而面对春晚这个巨大的项目,我们从哪些方面入手设计?在这里跟大家做一点分享.   对于客户端同学来说,常常直面用户的体验问题,而从春晚这个项目本身出发,可预见的是,

微信红包是怎样诞生

自1月10日开始,这个时间距微信红包发送达到峰值还有20天.就在深圳腾讯总部大厦的9.10两层, 大约才10人的微信红包团队,正在为了即将引爆中国人情社会的系统而夜以继日的打造. 一个大约10人.隶属于腾讯财付通基础产品中心的核心团队主导了开发过程.财付通公司基础产品中心的产品总监弓晨告诉我们,微信红包第一次关键闭门会议中,微信团队成员直接参与了策划与讨论. 在腾讯内部,想要和微信合作是十分困难的,因为接入微信接口意味着这个产品会在极短时间内拥有微信此前沉淀下来的庞大用户量.这一次,微信红包无疑

微信红包推出后,腾讯的得失

自从微信5.2版本发布,很多人的微信瞬间被"红包"刷屏. 微信红包的背后其实是一个名为"新年红包"的公众账号,它由腾讯财付通推出.可以预计的是,随着大量年轻人回乡与亲人团聚,春节期间微信红包势必会更大范围的病毒式传播,腾讯在不用花费任何推广费用的情况下就引爆了马年第一个全民话题,这个四两拨千斤的产品迅速被引爆的背后究竟隐藏了腾讯的那些得失? 微信红包为何这么红? 首先它很方便.用户只需进入"新年红包"公众号,选择发几个红包.发放的金额,写好祝福语

独家揭密:微信红包前传

微信红包系统代码写作自1月10日开始.此时距微信红包发送达到峰值还有20天,,一个大约10人的红包团队,夜以继日打造一个即将引爆中国人情社会的系统.张小龙并未参与微信红包这一牵动人心的产品的具体研发细节.不过,一位接近微信团队的人士表示,微信的任何新功能上线都必须经过张小龙同意.但微信红包这个产品与微信之父张小龙的理念是一致的.张小龙曾说:做了这么多年工作以后,我感觉对人性的把握是最重要的.这正是微信红包成功的基础.农历除夕到正月初八这9天时间,800多万中国人共领取了 4000万个红包,遍布全

微信红包泛滥三宗罪

2014年春节期间,微信推出了非常应景的红包功能,然后一炮而红,之后便一发不可收拾.甚至到现在,微信红包更是演变成为了各大微信群里每日最大的话题.不过,在微信群里泛滥的微信红包对微信的发展真的好吗? 微信发红包的三个诱因 我们不妨先来分析一下人们为什么热衷发红包?继而来分析下微信红包的利弊.根据东楼的观察和判断,应该人们热衷发红包的原因主要是以下三个: 1.促进人情交际 首先,发红包本就是中国最为传统的一种人际交往方式.各地人民在新年.结婚.开工等都有发红包的传统习惯.而今却通过微信这种承载6亿

“微信红包”引发移动端支付争夺战

"微信红包"引发移动端支付争夺战 占据高地为时尚早一.事件背景1月26日,"微信红包"基于微信5.2版本上线,微信"抢红包"迅速流行,成为微信社交圈的时髦活动.微信发"新年红包"只需四个步骤:绑定一张借记卡--填写红包信息--微信支付成功--发送给好友/微信群.二.相关数据据中国电子商务研究中心(100EC.CN)监测数据显示,截止除夕夜,平均每个红包10.7元,抢了最多红包的:869个.除夕夜参与红包活动的总人数达到482万

微信开放搜索,用户体验和商业变现该如何协调?

微信借助搜狗,终于开放了,无疑这是今天最重磅的消息.微信在搜索这块,至少在目前还是避免不了百度在PC端的老路子,就微信搜索目前的状态,笔者提出了几点自己的担忧,以及作为一个运营者,提出几点用户体验和商业变现之间的协调建议.微信借助搜索开放,实际是为公众账号流量不足加筹码随便搜索了一个关键词,微信营销;我们来看下排在前面的内容,根据笔者刚才的研究,以及对比自己所在公司的运营内容来分析, 微信搜索的排名,大概是按照标题关键词,账号的权重,内容的发布时间,内容发布的质量来进行排序,也就是说内容的质量并

换位思考用户体验 多元化服务是核心

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 用户体验是互联网思维的核心.如果企业想要基于互联网获得成功,就需要掌握用户体验这个关键性钥匙,因为在互联网环境下的用户体验要比在线下的体验更加出色,效果更好,只有如才才有可能让传统的用户逐渐转移到互联网平台上,否则任何的互联网创新都只不过是概念而已. 可是什么样的用户体验才是用户所需要的呢?很多专家学者都在不断的探讨,而且具有各种非常精深的理

企业公众服务号微信红包编程是否要进入开发者模式,如果消息推送 给了别的服务器 开发模式关闭怎么办?

问题描述 企业公众服务号微信红包编程是否要进入开发者模式,如果消息推送 给了别的服务器 开发模式关闭怎么办? 企业公众服务号微信红包编程是否要进入开发者模式,如果消息推送 给了别的服务器 开发模式关闭怎么办? 解决方案 公众号,如果想要响应外部程序调用,就必须使用开发者模式 消息推送给别的服务器?我没完全弄明白你的意思. 你的程序,如果需要调用公众号的接口,必须要在该公众号中填写程序所在服务器的URL.KEY和TOKEN, 当程序调用的时候,公众号会根据这些信息来响应,通过接口推送的信息,只会出