《架构师》2016年5月
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

三.技术创新

实际上,类似的这种活动用到的技术都是现成的,并不复杂。但为什么大家会觉得很难实现呢?主要是因为规模:用户和请求的并发规模越大,就越难在系统的成本和可用性上达到平衡,也就是说越难实现一个低运营成本、高服务可用性的系统。

在传统的应对这种有很大规模用户参与的活动的实现方案里,一般会采用在客户端过滤请求,以某种概率(基于时间或互动次数)发到服务器进行处理,这样服务器的压力可以大幅降低。

我们认为还可以做得更好,在这种活动的技术方案上可以有所突破——在保持低成本的前提下,全量处理用户的每次交互。这就大大降低了客户端的实现风险(因为客户端的更新和覆盖周期相对较长)。此外,服务器有了对用户交互有了全面的控制能力和灵活调整的能力。

这些能力对活动的运营是非常可贵的。可以让我们在活动过程中,各种复杂用户场景下,都能做到精细的调整,给了产品运营很大的灵活性,以保证活动效果和用户体验。看看下面两个例子。

我们可以精确控制和调整每次用户交互出现什么结果,曝光哪个赞助商;

活动过程中,有个很难预估的因素——参与人数。说不准参与的用户少了(或互动次数少了),导致红包很久都发不完?或者参与的用户多了(或互动次数多了),导致需要加快发放速度,更快速发完红包?

于是我们对这个技术方案做了全面的思考和设计,最终实现了现在这个系统,可以用很低的成本实现极高的性能和可用性,在除夕活动中得到了成功的应用。