高并发的那些事儿:从生活出发!

大家好,今天我们来聊聊如何应对高并发,以下我将会以生活中的各种例子去向你介绍所谓的”高并发“,更多食用方法请前往传送门
小伙伴们都知道,网站流量一大起来,服务器就像一锅快溢的粥,稍不注意就啪啪溢出来。既然人手一块儿在这锅粥里舀粥,那我们就得有好手段来保持粥的顺畅流动,总结几点常用妙招:
在这里插入图片描述

应用和静态文件分离

假设你家里有一台机器负责做饭又得招待客人,这效率肯定低。分开处理啊,专门一台做饭的,专门一台招待客人的!应用和静态也一样啦,把应用和静态文件分开到不同的服务器上。这静态文件很简单嘛,没啥变化,你用个不同的域名直接访问静态资源服务器,不用每次都去找应用服务器。

页面缓存

缓存是啥?就像你每次喝粥都先盛在碗里,省得每次喝都去锅里舀。页面缓存也是把生成好的页面缓存起来,让应用服务器不需要每次都重新生成页面。把这些缓存放到内存里,速度更快。Nginx 有自带的缓存功能,也可以用 Squid 服务器。

页面缓存默认都是按时间来设置有效期的,当然你也可以在数据更改后手动刷新缓存。

集群与分布式

集群

就是多台服务器一样的活儿都干,来谁活儿都行。这主要是分流,类似你家太忙了,招了一堆伙计,每个伙计都能干活。

分布式

就是不同服务器干不同的活儿,一个请求可能需要多台服务器合作。像是厨房作坊,一个人揉面,一个人包馅,一个人蒸,效率嗖嗖的!

集群和分布式也可以合起来用,分布式分工明确,集群分流负担。

Session 同步

集群中会出现 Session 同步的问题。Session 就是用户的临时状态啊,解决办法有两种:

  1. 自动同步:Session 变化了,其他服务器也更新。
  2. 统一管理:专门的程序服务器(比如 Mencached)统一管理 Session,各服务器通用。

Tomcat 默认用第一种方式,只需要简单配置就好。第二种方式需要搞个缓存程序统一管理 Session,然后重写 Request 覆盖 getSession 方法来指定服务器中的 Session。

负载均衡

就是来个请求后,安排哪个服务器处理。可以用软件搞,也可以用硬件(比如 F5)来处理。

反向代理

反向代理就像一个经理,客户(用户)找经理(代理服务器),经理再安排人(真实服务器)干活,然后把结果给客户。

反向代理 vs 代理服务器

  • 反向代理:客户不管做事的是谁,让经理(代理服务器)安排。客户只知道经理。
  • 代理服务器:客户直接找代理服务器帮忙获取资料内容。

CDN

内容分发网络(CDN),是一种特殊的集群页面缓存服务器。它分布在全国各地,当用户请求时会把请求分配到最适合的 CDN 服务器节点,比如联通用户分配到联通节点,上海用户分配到上海节点。

数据库优化

数据库也是瓶颈啊,得好好养护:

  • 表结构设计:结构得科学。
  • 数据类型选择:字段类型选的合适。
  • SQL 优化:查数据的语句得写的高效。
  • 索引优化:查的数据多了,得建索引。
  • 配置优化:服务器的配置得适应业务。
  • 底层优化:数据库服务的底层实现和存储得优化。

底层网络优化

所有的上层工作都基于网络传输,网络慢了,上层啥都白搭。网络传输的速度提高了,整个系统都会流畅不少!

赶紧用这些妙招给服务器“保健”,让它在高并发的洪流中屹立不倒!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值