创作不易,如果觉得写的不错就投币支持一下吧~
高并发解决方案
情景模拟:在很多个用户同时访问网站的时候,例如:抢购或者双十一的时候。如何避免服务器宕机或者数据库挂掉的问题,请你提供几种解决方案。
1、静态资源与后台服务进行分离
静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。
这样在高并发的情况下是很有必要这样做的,可以想象一下,双十一的时候,浏览商品的并发量是远远高于下单的并发量的。架构图如下:
2、做页面静态化
静态化的意思就是将数据渲染后的动态页面变成一个html静态页面的保存起来,如果以后需要再次访问该页面,则将该请求重定向到静态页面。这样就不需要再向数据库或者缓存中拿去数据然后再进行渲染页面,返回到客户端。大大的提高了响应速度,减轻了服务端的负担。这个原理其实和缓存一样,只是将整个页面进行了缓存。nginx就自带了页面静态化的解决方案。
3、分布式和集群
分布式就是对整个系统进行水平拆分和垂直拆分。垂直拆分就是每一个功能模块都拆分成一个可以独立运行的微服务,从客户端发来的请求会根据所请求的功能转发到不同的微服务&