记得有一次,我们项目组憋大招,想做一次大推广(据说某日早上会有一个用户使用的小高峰),各项条件都准备好的情况下,发版!推广!然而,第二天早上,推广的URL几率性返回为空,原来是运维做了限制。原因:CDN带宽爆了,运维限制了流量
CDN是啥?
和线上服务器是啥关系? leader说:以后新增加接口需要注意访问量和post数据的字节数,post数据花费的是我手机的流量,和线上服务器又是什么关系呢?
一串串疑问经过网上搜索,整理如下:
- CDN就是一堆服务器,有专门的CDN服务商
- 公司买CDN服务器用作线上服务器,将后台开发写好的代码部署到CDN上,其中:
- 由于CDN服务器和用户的终端都需要使用运营商的网络进行通讯(用户终端和CDN是两个终端)
- 每一个终端上行下行都需要耗费流量。意思是都要给运营商交钱
- 另外,CDN最主要的功能还是负责布置节点:买大型服务器并决定将服务器放置在哪里。因此,CDN主要消耗在于购买服务器并设置节点+网费。因此我们需要给CDN付钱
- 用户访问CDN的过程
- 一个用户终端处于运营商的网络下(已缴纳网费)——>post本地数据——> CDN(执行代码)
- 一个 用户终端的客户端进行展现(已缴纳网费)<——返回服务器策略<—— CDN,如下图所示:
- 其中,post数据是从用户终端出去后访问了CDN的服务器,如果字节数太大,同时并发数太大,则有可能导致某一时间的带宽峰值超过上限
- 同理,如果服务器下发的数据的字节数过大,也会存在同样的问题
- 其他点:CDN计费方式分为两种:按带宽(峰值)和流量,另外还有按照请求数,pv来收费的
- 按带宽:和家里的宽带类似
- 按流量:目前比较少
###测试注意事项
粗略计算一个接口消耗的流量
- 同一点并发的用户数*request的字节数=那个时间点的流量
- 同一点并发的用户数*response的字节数=那个时间的流量