发布时间: 2021-06-25 09:54:10
你是否有过这样的经历?当你在晚上7-8点上网高峰期输入某些网站的网址去访问时,页面出现404,500等这样的错误信息?
此时,我们会第一时间去检查自己手机或者电脑的网络是否有问题,经过飞行模式、重启、拔下网线重新连接等操作发现依旧不行;而其他类似于淘宝,京东,百度这样的大型网站都能够实现正常访问。
这个时候我们就会想:这个网站是不是被封杀了?或者这个网站是不是“崩”了?而实际上,只是因为这个时间上,网络就像马路交通一样陷入了拥堵,同一时刻访问这个网站的人太大,导致你无法直接抵达,只能等候排队!
其实大家不用担心,通常导致这种情况出现的原因,是访问该网站的人过多,而网站无法支撑这么多的用户访问所以导致了崩溃。
那么问题来了:像淘宝、京东、百度这样的网站,每天最少有千万的用户去访问它,在618,双11的时候,访问的用户剧增!这些网站是如何做到支持这么多的用户同时实现访问的呢? 这其中就可能涉及到Nginx技术中的“负载均衡”和“高并发处理”等问题。
什么是负载均衡呢?负载均衡可以理解为当多人同时访问该网站时,可以通过某种方式将这些访问的请求分摊到各内部进程上。
什么是高并发呢?高并发其实就是该网站是否能支持多人同时实现访问的情况下依然能够保保证处于稳定运行的状态。
另一方面,你是否有过这样的经历:当你去访问淘宝,京东这样的购物网站,或者使用这样的APP后,第二次再去查看这个APP,你以前浏览过的商品页面出现在了你的视野中,还给你推荐了类似的商品。
我们都知道这是通过大数据来实现的,但实际上大数据的实现也需要有强有力的后台支撑,这么多的用户都能享受到这种“量身定制”的服务。
这其中就有Nginx的功劳, Nginx技术可以说是大型网站的福音,是多业务,多平台,多访问量场景下实现负载均衡,高并发,结合大数据行为分析,全栈监控进行快速故障定位等的必备技术手段。
多业务平台下的Nginx应用场景:
Nginx的优点
更快,单次请求更快,高峰期也更快。
高扩展性,极具扩展性,它由多个不同功能、不同层次、不同类型且耦合度较高的模块组成,这种低耦合的设计,造就了它庞大的第三方模块。
高可靠性,每个worker进程相对独立,master进程在某个worker进程出错时能迅速拉起新的worker进程,nginx的可靠性来源于其核心框架代码的优秀设计、模块设计的简单性。
低内存消耗,一般情况下10000个非活跃的keep-alive连接仅消耗2.5M的内存。
单机支持10万以上的并发连接,Nginx支持的并发连接上限取决于内存,10万远没封顶。
Nginx实用场景
大型Nginx网站架构:
Nginx应用案例:
应用Nginx后的收益
业务更加稳定:
1. Nginx大连接数目支持非常好。
2. Nginx本身占用内存很少,不会吃Swap。
业务性能更高:
1. Qps比Apache更好。
2. 节省及其数据。
3. 基于Nginx的模块性能是之前业务的数倍。
上一篇: tar命令进行文件的归档和压缩
下一篇: C和C++哪个好