我是怎么让全国最大的儿童失踪预警平台流量掉底的

假如你是一个老司机,一眼看到一个这样的外网带宽曲线,你会有什么反应?

我擦,流量几乎掉底了,从一天前开始的,至今仍未恢复,这个服务是挂掉了吗?

这其实是近几个月在微信上异常活跃的CCSER儿童失踪预警平台的后台服务器的流量监控图

CCSER的发起人张永将,和我们一样有一个做中国的互联网安珀警戒(Amber Alert)的梦想,从CCSER发起时我们就一直在尝试各种合作。去年底CCSER终于完成了大量前期工作,准备开始发力面向全国用户做推广,作为互联网老兵,我们深知要做一个面向海量用户的大平台需要面临巨大的技术挑战,于是邀请CCSER入驻到“云+公益”计划,由我们提供云资源和必要的技术支持。

果然,放量没多久,CCSER提出了新的需求:原来提供的5台服务器不够用,而且面向全国的地区覆盖不够好,希望可以提供多几台分布在其全国各个机房的服务器来协助分发。

这其实是很常见的一类问题:用户需要的是一个墙上的洞,而他以为自己需要的是一把冲击钻。在这个案例中,CCSER需要的是更多的分发数据的能力,而他以为自己需要的是更多的分发数据的服务器。

CCSER的业务场景很特殊,每当有儿童走失案例上报,CCSER就会向走失地点附近的一大片区域进行APP和微信的消息推送,像这样

随后短时间内该片地区的大量的用户会点击这个消息,给服务器带来很大的流量冲击。

在大多数时间里面,服务器又没有什么压力。

因此如果我们面对服务器的峰值流量来做系统选型的话,系统就不得不设计的非常高规格,同时使用率必定非常低。

还好在云时代,我们不需要去买自己的“冲击钻”,分发能力早就通过COS、优图、CDN这样的产品向公众提供服务了,所以问题变的很简单了:如何启用CDN来提供透明的动静态数据的加速服务。

所以我们婉拒了CCSER增加服务器的需求,转而协助CCSER进行CDN分发加速配置。

同时也协助CCSER配置缓存过期策略,确保动态数据透传,静态数据有效缓存,并且打开了“中间源”做二级的缓存。

经过CDN的两级分发缓冲之后,CCSER服务器的压力急剧降低,流量监控出现了文章开始处的掉底曲线。以后需要进行大范围消息投放的时候,再也不用畏首畏尾,担心服务器会不会撑不住了。

同时服务器的真实IP也被隐藏到了CDN后面,因此安全性也得到了很大增强。

同时,假如这不是一个免费的公益项目的话,通过CDN来分发还能节省大量的费用。

posted @ 2017-03-24 11:08  emu  阅读(327)  评论(0编辑  收藏  举报