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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

2251
来自专栏xingoo, 一个梦想做发明家的程序员

windows程序设计-第四章 system1.c

/*---------------------------------------------------- SYSMETS1.C -- System M...

26010
来自专栏我和未来有约会

silverlight向服务器post数据类

using System; using System.Net; using System.Windows; using System.Windows.Co...

2055
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2488
来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5825
来自专栏跟着阿笨一起玩NET

[C#]工具类—FTP上传下载

  不错的文章:http://www.cnblogs.com/greatverve/archive/2012/03/03/csharp-ftp.html

1531
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1411
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

3136
来自专栏c#开发者

jquery easyui datagrid mvc server端分页排序筛选的实现

1自定义一个ModelBinder public class filterRule { public string field { g...

4239
来自专栏飞扬的花生

日志帮助类

 1.代码 using System; using System.Collections.Generic; using System.Linq; using S...

2019

扫码关注云+社区