双十一小记

又是一年剁手时节,今年的双十一,我没有打算花费过多费用在购物上面,毕竟有些东西还是实体店购买来的更加方便可靠。

众所周知,眼下的双十一是一个电商狂欢节,起初,它的目的并不像现在这般,只是为了倾销堆积商品。

后来,淘宝和天猫积压的商品在双十一之后仍旧过多,唯品会借助这个机会,弯道超车,另辟蹊径,成为了另一个大的电商平台。

淘宝和天猫在双十一峰值的时候会达到十多万每秒的高并发请求数量(2015年的数据),这无疑是一个巨大的挑战。在今年这个数据可能会更高,据相关推算,今年的峰值并发量将会达到百万级。

那么,在应对如此巨大的并发请求的时候,通常采用的方式是什么呢?

应对高并发,有两个很重要的概念:缓存与异步。

缓存

缓存,即cache,应对高并发场景,可以在用户行为的所有环节上添加一个合理的缓存操作。首先对浏览器端进行Cache设置,设置合理的过期规则,配合CDN,让部分元素直接从浏览器的Cache获取,有效降低服务器的访问压力。

业务层表现方式为动态和静态,大部分资源可以使用静态CDN的方式进行加速获取并展示。添加CDN Cache,可以大幅提升访问速度,同时降低后端实际负载。

异步

使用非阻塞模式,也可以快速提升访问速度。异步化队列通过队列将请求或事务置入后台运行,从而使得同步阻塞模式变为异步非阻塞模式。

比如,多个用户在抢购同一个商品时,会同时调用支付借口,同步阻塞模式的情形下,用户过多时,支付数据库的压力会非常大,可能会引起数据库服务器宕机。

分布式

在处理商品展示和购买操作的时候选用了分布式数据库解决方案。据悉,天猫淘宝采用的交易库应该是OceanBase,为了保持数据一致性,采用了Paxos协议。具体可以参考知乎上面的这个回答:天猫双十一是怎么保证高并发、分布式系统中,数据一致性的?


有点偏离主题思路了,这篇文章就先写到这里吧

下面是一些参考:

2016年,双十一,天猫的交易额达到了1207亿。可怕!

所以,本文的标题英文为an ironic day