vlambda博客
学习文章列表

开发常常说到的CDN、负载均衡是什么?


物联网的时代随着网络的普及,快速发展,流量为王的时代,瓶颈已经不再是服务器或者数据库的压力了,而是流量和访问速度。


实例列举:有1万人需要过河,此时只有一根独木桥可以顺利过河,那么此时就需要一个一个的队列正常排队等待过河,那么后面得人需要耗费大量的时间等待过河,如果此时是1w人的流量,那么此时队列等待消耗就是流量无形之中流失的围墙!好比你进入一个商城进行购物,页面几分钟打不开,此时相信你也不会在继续等待,会随之关闭网页去寻找下一家商城满足自己的购物需求吧


那么此时我们该如何解决这个万人过河故事中的问题呢?避免或减少流量的流失呢,相信很多人已经猜到,是不是可以搭建倍量的独木桥,一根独木桥需要大量时间等待,那我们就搭建10根、100、1000...甚至更多,来实现多人并发同时过河,减少消耗等待的时间,让流量快速流入进来。


其实CDN就是这么一件事情,应该有很多同学还不太了解负载均衡以及CDN,所以今天特地分享此篇文章,那么开发口中常常聊到的CDN以及负载均衡是什么呢,我们来看看


CDN的全称是Content Delivery Network,即内容分发网络是通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet 网络的状况,提高用户访问网站的响应速度(部分内容来源于网络如有侵权请及时联系删除)


最常见的就是通过CDN服务商去分配合适的IP给用户访问,一般遵循3种方式分配。

1>就近分配,即CDN服务器获取本地IP所在地,然后访问最近的CDN节点,这样可以少经过几条路由,从而加快访问速度,如图所示。


开发常常说到的CDN、负载均衡是什么?

(其中的道理有点类似中转仓或者每个城市的建立的物流配送中心,让销售用户在最近的节点进行完成自己的产品售出,保证短时间内相应用户的需求,尽最大可能满足用户的消费体验)


2>负载均衡分配,如果都按照上图的原则去分配,势必会导致一个问题,即北上广的用户过多,而其他地方用户太少,这样北上广用户还是会慢,都堵在一个节点。所以需要根据每个节点的负载压力自动将其分配到压力较小的节点。


3>手动分配,以上两种都是自动分配,但有一种情况是某个节点网络出问题,或者机房断电等不可控因素,这时候就要手动调配节点以保证用户不受影响。


当然也可以不通过CDN服务商达到CDN的目的,就是自己做CDN,虽然成本较大,但私密信息不会泄露。毕竟通过CDN服务商必须把信息放在CDN节点上,这样隐秘性比较难保证。