会场活动页,承载了促销商品导流功能,是消费者的购物入口,在双11活动中的地位可谓重中之重。保障活动页的快速稳定可用,是非常非常重要的。这次天猫双11会场页面渲染由wormhole来承担(wormhole本身会在后续的文章中详细介绍),下面介绍一下wormhole的容灾方案。

技术方案

动态降频

wormhole主要消耗性能的地方就在模板引擎渲染这部分,在并发访问量大的情况下,频繁的模板渲染会导致系统负载急剧飙升,导致响应延迟。为了保证大并发量下,足够快速的响应,针对的做了动态降频方案,具体的见下图:

整个渲染策略就是,定时备份页面到OSS集群,每次请求过来,都会去判断当前系统Load是否过载,若果过载则直接读取上次备份的页面返回,而不使用模板引擎渲染,达到动态降低系统负载,快速响应的目的。

CDN兜底

动态降频能够保证大部分情况下的快速响应;但是,如果wormhole集群全部当机,则也无能为了。为了确保双11万无一失,还得有一招后手。为此,我们做了一个兜底方案,见下图:

同样类似于第一个方案,也会定时备份页面到OSS集群,不同的是,这次备份到另一个异地的OSS机房,以防止OSS服务因不可抗力挂掉;如果发生了最极端的情况,源站全部挂掉,由当天的值班人员,手工切换CDN指向已经备份了的OSS文件,保障页面可访问。

监控

wormhole基于Node平台开发,我们知道Node平台长期以来,对内存使用监控这块一直很薄弱;对线上服务内存泄露排查基本无从入手;Node服务就像一个黑盒,只能祈祷不要出错,出错也只能使用万能的重启大法。为了弥补这一块,alinode团队推出了监控系统,重点解决这些痛点问题。

总结

  • 没有完美的方案,必须要结合具体场景做调整。必要时,人工干预也是需要的。
  • wormhole服务超级稳定,一条容灾方案也没有执行。