jifang

有损服务与降维攻击

相比传统的软件产品而言,互联网产品的一大特色是会出现短时间内访问量暴涨暴跌的现象,抗住瞬间流量是互联网产品在设计之处就需要考虑的。比如:12306因为抢票瘫痪、微信红包的瞬间流量、小米的饥饿营销。失败和成功的经验都印证了这一现象。

那么,我们应该采取什么的策略来应对突发性事件造成的流量涨跌呢?除了增加服务的搞可用性以外,适当的在产品设计中加入有损服务的思想也是不错的选择。

什么是有损服务呢?

有损服务,顾名思义是指刻意输出在品质上存在某些损失的服务,目的是以此牺牲换取其他方面(速度、稳定性、成功执行的几率)的优化。

以微信红包为例:

微信的应用特点是业务单一、业务规则简单、瞬时访问量涨落巨大、数据一致性要求较弱。因此,互联网数据中心架构需要在分布式架构基础上,进一步放松了对数据一致性和设备可靠性的要求,追求在极大规模访问压力时的响应能力和低成本。

这个就是有损服务的适用场景,其主要是针对微信红包的特殊性进行的,通过精心拆分产品流程,可以选择性的牺牲掉一部分数据的一致性和完整性,从而保证核心应用大部分功能的稳定运行。

——腾讯是有损服务的受益者

不过,有损服务策略的使用是要根据场景来定的。有些场景适合、有些场景不适合,需要深入的分析业务场景的适用性。

在实施有损服务的方案时,也有两条基本原则:1)发生问题时,优先保证核心功能的运转,非核心功能不可以影响核心功能;2)在条件允许的情况下,牺牲的特性越少越好。

什么是降维攻击呢?

这个概念出现或者说为人所知始于刘慈欣的《三体》三 是一种通过降低敌人所在世界维度而毁灭敌人的方法 比如说我们生活在三维世界 降维攻击会把我们的世界变成平面的二维世界 作为三维生物的我们 自然无法生存 而这个词的引申意义则是 处在低层次的人把别人拉到和他一个层次上 然后再进行攻击。

降维攻击是攻,有损服务是守。其实,也可以这样理解。常常天衣无缝的系统源于业务和我们的观念,特别是技术出身的创始人,对服务的可用性追求非常苛刻,5个9,6个9什么的。如果天衣无缝是三维世界的话。那么,有损服务就是经过降维后的二维世界。降低了门槛、保住了核心服务、提高了服务的可用性(而不是提示拒绝服务)。

其实,有损服务、降维攻击、柔性可用这三个关键词和太极的理念切合。敌进我退,敌退我进,不在不必要的地方投入过多的精力,保证核心利益即可。

参考:

发这么多红包 微信IT架构为啥没崩溃?

增长黑客之有损服务——放下不必要的坚持

发表评论

电子邮件地址不会被公开。 必填项已用*标注