双十一

双十一技术篇

去年我还没过来, 据说系统最后是没扛住双十一的大压力崩了, 今年提前好久开始准备, 底线是系统一定要扛住, 准备过程中列了下可能的风险点, 主要是

  1. 系统处理能力
  2. 用户流量出口
  3. 淘宝调用流量
  4. DB 写磁盘压力

挨个分析下

  1. 系统处理能力
    这个反倒是小事, 我们自己的吞吐能力从来没出过问题

  2. 用户流量出口
    今年年初开始就把静态内容放到了七牛上, 自己的流量压力小了很多. 不过盘算下到时候峰值可能还是会爆, 决定加带宽, 由于阿里云的奇葩定价策略, 单买 5M 带宽比买一台带 5M 带宽的虚拟机还贵, 于是我们就再继续买机器做分布式处理, 架构支持分布式就是好

  3. 淘宝调用流量
    调淘宝接口居然还算的是外部流量, 这是之前没仔细考虑过的地方. 看了下大头在读写商品详情上, 这个功能到时候估计怎么加机器都会不够, 提前准备了关闭部分功能做降级的开关, 反正也不是核心功能, 到时候看情况关掉好了

  4. DB 写磁盘压力
    其实 DB 本身是没那么弱的, 我们的主库机器把内存选到了阿里云支持的最大内存, 只是阿里云的硬盘实在是太差了, 一旦有大量持久化操作写磁盘, 磁盘 IO 就扛不住了. 这个我们提前对 DB 里的冷数据做持久化, 降低内存里的数据大小, 避免磁盘 IO 被写死

双十一前一天, 系统的 UV 大概是平时的两倍, 下午继续慢慢往上涨, 最高的时候到了平时的快四倍, 因为今年我们自己的带宽没卡住, 调淘宝接口也没被限流, 来做设置的卖家搞完就走了, 没发生堵塞. 事实证明如果在你的处理能力范围内, 尽可能快的做完事情把人送走才是正确的解决办法, 把一堆人扣在这里慢慢排队处理只会让事情越来越糟糕, 交通枢纽应该都讲究怎么快的把人疏散走, 而不是把人垒在自己这 (说的就是你, 帝都的各种地铁站什么的)

淘宝官方说的是双十一前一天晚上十点接口限流, 我们吸取去年教训在我们的系统通知里说下午六点就暂停服务, 这也算是一个缓解的思路, 让一些人提前进来处理掉. 不过下午六点后 UV 还是明显在涨, 一群又一群赶着想在双十一捞一把的小白新卖家各种不看公告不管系统通知一定要作死的卡点来做设置. 到晚上快十一点淘宝正式限流, 我们这边也按预案暂停服务, 挂通知安抚

凌晨的时候淘宝限流有放开, 其实当天人就不多了, 坡就偷偷的把服务给开了, 但是暂停服务的通知还挂着. 上午估计一堆人发现了系统还能用, 又塞过来各种调, 淘宝那边也大量返回报错和限流提示, 看了下好像也没有想的那么夸张, 坡一狠心把重试次数加大, 居然就直接扛过去了

按系统通知, 是打算在双十一第二天中午十二点才恢复服务的, 结果双十一当天顺利的出奇, 晚上十二点系统也还开在那, 可惜没想到卖家折腾了一天后发现系统还可用就疯狂的做一键重开恢复平时的活动设置, 瞬间涌进来了平日高峰流量的快五倍那么多人, 系统和流量都没问题, 但是 DB 跪在了阿里云这不靠谱的磁盘上. 只能暂停服务, 继续挂通知, 来的快散的也快, 估计过了十来分钟大家看没戏就很快散了, 然后把服务重新恢复. 第二天白天人一直就不多, 一直观察到十二点也没出现预期的瞬间高峰, 可能还是大家发现系统是可用的, 没有卡点来做恢复操作. 双十一就这么有惊无险的过去了

习惯性总结下

  1. 系统的可扩展性很重要, 关键时刻如果能通过加机器搞定的事情就去加机器搞定好了, 多花的那么点钱完全不是个事
  2. 对自己系统的能力和客户的使用习惯要预估好, 我们最后还是托大了下, 没预料到双十一结束后的那个瞬时高峰
  3. 阿里云还是要给力才行, 据说今年会全面换成 SSD, 到时候先开个 DB 从库上去当小白鼠, 靠谱了就全切

当然, 每年都有各种二逼卖家改错价找上门哭诉或要挟的, 这种作死行为完全拦不住啊, 不看通知不看公告不看系统提示你们真的是来做生意的么, 然后每年继续还有二缺天猫卖家双十一当天跑过来说你们怎么不能用我要给你们差评, 啊叻天猫早就通知了双十一当天只有官方工具生效的好吧, 更二缺的天猫卖家发现双十一当天普通折扣不生效了就去改原价, 然后晚上不及时改过来第二天凌晨到早上被人超低价狂买然后跑来说你们软件有问题乱改价我亏了你们怎么赔我, 切爱谁谁吧, 淘宝城在文一西路上过去拉横幅要跳楼找马总解决吧

双十一个人篇

去年双十一前还在淘系里面, 楼下就是天猫, 各种氛围, 我们自己当时做手淘上的某个东西, 也挺有氛围的, 之前各种抢红包啥的, 但是今年其实都没想好要买什么, 该有的都不缺, 缺的也不用赶着这个点去买, 很多需要的东西其实也没便宜, 然后这段时间还会被快递坑死, 反倒是双十一前把很多该买的买了

今年双十一天猫新搞了个冲天猫宝拿红包的活动, 类似去年的余额宝? 结果一分钱红包都没拿到, 哼, 对今年双十一更加没参加的动力, 去年好歹还想着怎么把弄到的一堆红包给花掉

双十一当天早上爷爷打电话说有 SONY 的 22~26 寸液晶彩电, 只卖两百多, 可以放卧室里看, 跑淘宝上搜了半天发现都是骗人的组装货, 打着索尼面板的名义坑蒙拐骗, 而且两百多是配件价格不是电视机, 告诉老人家这种事还是安心忘掉好了. 中午老爸说要买冲锋衣, 前几天给他看过, 反正都要买, 讨家长欢心帮比较了下, 下单付款搞定, 然后问要不要鞋子, 去看了下其他家也一般, 在迪卡侬买了一双户外鞋

办公室的客服妹子 zj 早就念叨着说这次有秒杀 iPhone 6 的活动, 一定要秒一个把她手上那个 iPhone 4 给换掉, 双十一凌晨的那一场, 她叫了好些人帮忙抢结果都失败了, 办公室里熊听到后默默的躲在角落里成功秒到一台, 果然闷声才能发大财. 白天还有几场秒杀, 想了下 3999 拿个 iPhone 6 还是很划算的, 就算自己没有换机的打算, 加价出手赚点零花钱也好啊, 加上那天没出啥问题, 全办公室都在很欢乐的抢, 第一次大家都失败, 第二次我自己秒到一台, 熊拿我家喵的号秒到一台, 付款的时候太紧张, 我忘了用花旗蓝卡信用卡付钱, 直接走的天猫宝加余额宝, 白浪费了 150 块的返现, 而且这付出去的钱都是流动资金啊, 可以收利息的啊, 心疼. 天猫另一个二缺的地方在于优惠券在页面侧边栏领会失败, 我以为他家优惠券被领完了就没管, 结果付完钱发现去店铺首页还是可以领满 2000-10 的券, 又白白浪费二十块. 在后面两场里另一位客服妹子 ss 也秒到一台, 苏鑫在最后一场也成功秒到一台, 答应转给苦念不得的 zj, 办公室保持场均一台的秒杀率, 总共 5000 台抢到了 5 台, 战斗力非常值得表扬呐

前面的 iPhone 6 秒杀活动页面说会判重, 拿收货人名字, 电话, 地址, IP 来判, 当时我弄完后才发现家喵的默认收货人和地址也是我, 就想不会被砍单吧, 而且熊的地址也留的办公室, 砍单风险更大, 后来 ss 和苏鑫都写的家里地址应该没事. 忐忑不安等了几天都没发货, 说不会被砍吧, 而且这家店还好意思腆着脸发短信说帮他们去微博上宣传, 货都没发你让人怎么宣传. 后来 zj 说她那些专职做秒杀的小伙伴们已经有被砍单的, 不过是发邮件通知, 我们都没收到邮件应该就没事了. 还好这周一苏鑫的到货, 说是随机发颜色所以是一台星空灰, 妹子们表示一定不能要黑的还是跟人换白或金吧, 守着盒子没开封, 带回家第二天又带过来. 周二早上我到一台, 土豪金, 之前答应了给坡的就直接倒给了他, 下午我另一台也到了, 还是土豪金, zj 就赶紧巴巴的说把这个换掉吧, 远程那边 ss 也说收到了, 问我啥颜色, 一看盒子还是土豪金. 熊最早买到的反倒最后到, 大家都表示他家发货果然是用的栈操作, 先进后出. 因为没人跟熊抢, 熊就还是纠结着淘汰掉粗粮走上 iOS 的光(keng)明(die)大(feng)道(bi), 男生都觉得黑色好看, 把星空灰要走. 山坡表示你看我为你们考虑多周到, 剪卡器都给你们带来了, 一起换上看看能用联通 4G 了没, 咔嚓两下后没一个成功的, 比较了半天说这老 SIM 卡的点位跟新的都不一样… 光把尺寸剪对了是没用的, 搜了下最近的联通营业厅, 默默的陪着 zj 和熊去换 nano-SIM 了. 周三早上熊的到货, 银色, 这下颜色终于齐了, 顺丰在高峰期也还是各种扛不住啊

后面自己乱逛看着玩, 119 买了双李宁的板鞋, 这个算是本来就要买的必需品, 所以也没太多犹豫的. 不过付完钱过了好一会再想下这种鞋都是泉州货, 换个牌子也差不多, 别克361特步鸿星尔克安踏什么的可以再便宜二三十, 冲动消费啊. 给喵买了双板鞋倒是只要 35, 收到货后感觉挺超值, 家喵继续表示 “我还是很好养的你看从来不嫌你给我买的东西太便宜”. 快到晚上时跟喵在微信上扯, 喵作为女生还是表示双十一不买点东西浑身不痛快啊, 于是给喵下单购物车里看好过的鞋, 等付款时扫码发现不能给别人付, 应该下单前就选找人代付的, 最后还是用的喵的钱, 我真不是故意的…

简单总结下, 说到底还是冲动消费居多, 心痛的是本可以多薅 200 的羊毛没薅到