如何处理大流量高并发

1.动静分离。

  将网站中的静态资源单独拆分出来, 比如 css, js, 图片, 视频资源单独存储在一台服务器上, 或者直接使用云存储平台, 七牛云或者阿里云之类的, 这样能有效的降低主服务器的运行压力

2.CDN加速。

  云平台提供 CDN 加速, 可以对资源进行全国服务器节点的分发, 提高全国各地的访问速度。

3.反向代理,负载均衡。

  反向代理就是将用户的请求, 分发到不同的 web 服务器上, 进行处理, 降低单台服务器的压力, 负载均衡则是根据 web 服务器的性能进行请求的分配, 负载较小的多分配一些请求, 负载较大的小分配一下请求.   nginx 就可以实现反向代理和负载均衡。

4.使用数据缓存。

  数据缓存可以使用 memcache 和 redis 这样的内存缓存系统来实现, 将一些常用数据写入到内存中, 从而提升响应的速度。

5.数据库优化。

  数据缓存,结构优化,定位慢查询语句,语句优化,索引优化,分库分表,主从复制读写分离,中文分词。

6.压缩合并js   css。

  过多的 js 和 css 请求会消耗服务器的资源. 可以借助前端工具 webpack 来进行打包。

7.分布式集群搭建。

  将业务拆分到不同的服务器下, 降低单台服务器压力.例如用户和商品功能拆分开。

8.页面静态化。

  页面静态化其实是缓存的一种实现, 将要返回的 HTML 内容预先写入到一个文件中, 访问的时候可以直接返回该文件中的内容。

9.防止外部盗链。

  盗链是其他网站引用当前服务器的资源, 比如css, js 和图片,主要是图片. 可以使用 refer 进行限制。

10.使用消息队列。

  将请求的内容压入到队列中, 用另外的脚本异步处理请求, Redis 的列表结构就可以实现这个效果。

转载于:https://www.cnblogs.com/wwlong/p/10187211.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

echarts鼠标事件以及自定义数据获取

事件添加方法: 对应官网位置:https://www.echartsjs.com/api.html#events 鼠标事件包括 click、dblclick、mousedown、mousemove、mouseup、mouseover、mouseout、globalout、contextmenu。 myChart.on(click, function (params) {console.log(params); …

[数学]点、线、面分割问题

平面分割问题 p条直线相交于一点时,分割的图形有 2*(n-1) 个,此时再加一条直线,在 2*(n-1) 的基础上再加 n条,此时为2*n n条曲线,其中有m条相交于一点,每两个曲线都交于两点 平面上有n条直线,且…

移动开发

1.移动端基础 1.1 浏览器现状 PC端浏览器 360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器(停止服务)、搜狗浏览器、IE浏览器 移动端浏览器 UC、QQ浏览器、欧朋浏览器、百度手机浏览器、360、搜狗、猎豹、谷歌等其他手机自带的浏览器 国…

Django之路由系统

Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置…

微信小程序——操作数据库

案例一:统计用户的访问次数 业务需求: 统计每个用户对程序的访问次数将访问次数存储到数据库中访问次数应该与用户进行关联 业务逻辑: 如果用户是第一次访问此程序,向数据库添加一条记录:{openid:45454…

shop--12.阿里云部署以及域名绑定

一、申请阿里云服务器(1)PC访问阿里云https://www.aliyun.com/,申请阿里云帐号(可以用您的支付宝帐号登录,因为支付宝帐号已经进行了实名认证,使用起来更方便)并登录(2)找…

微信小程序——获取用户的运动步数

程序获取用户信息步骤 点击参考微信文档中的授权首先程序先向用户申请访问哪些权限用户做出选择后返回给程序程序携带权限访问服务器如果用户允许则返回信息如果用户为允许则不返回 自定义函数getUserRun 为获取用户的微信运动数据 页面加载调用此函数函数中执行下面操作 1…

C++之前置自增与后置自增

关于前置自增与后置自增的区别我是参考这里:http://bbs.bccn.net/thread-454977-1-1.html 简单复述下,比如x; 与 x; 在C中,x这个表达式的值为原先x的值1,副作用是x的值增加了1;(C中不是这样定义的&#xff…

第一次个人作业

该作业所属课程:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2作业要求地址:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340团队名称:脑壳痛 作业的目标 1.通过测试其他组的软件项目学习其…

微信小程序——解决上传并部署云函数时报错ResourceNotFound.Function, 未找到函数版本,请创建后再试。 (7f2d9d2d-5eac-4575-9n57-acd66cfa587g

1. 上传部署我们的云函数 2. 报错 错误信息为:Error: ResourceNotFound.Function, 未找到函数版本,请创建后再试。 (7f2d9d2d-5eac-4575-9b57-acd66cfa587e) 3. 原因 原因是可能我们在调试的时候不小心将我们开发控制台中的云函数删除了 4. 解决办法…

前端面试题——HTML基础篇

如何进行网站的性能优化 content方面 减少http请求 合并文件 css精灵图减少 DNS 查询 DNS缓存 将资源分布到恰当数量的主机名减少 DOM 元素的数量 Server方面 使用CDN配置Etag对组件使用 Gzip 压缩 Cookie方面 减小cookie大小 css方面 将样式表放到页面顶部不使用css表…

【IT界的厨子】酱香鲈鱼

食材: 前世曾经回眸的鲈鱼一条(主要选刺少的鱼,适合孩子吃,大人吃随意,草鱼比较大) 五花肉少许(肥一些的) 豆腐 辅料: 葱姜 蒜(选) 大料 香菜 调味: 啤酒(两罐) 黄豆酱或豆瓣酱(选) 老抽 生抽 料酒 盐 步骤: 1、鱼肉划开,方便炖的…

第二章:09流程控制[3for]

①格式for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } ②注意事项A:判断条件语句无论简单还是复杂结果是boolean类型。 B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。 C:一般来说:有左大括…

LeetCode,第377场周赛,个人题解

目录 100148.最小数字游戏 题目描述 思路分析 代码详解 100169.移除栅栏得到的正方形田地的最大面积 题目描述 思路分析 代码详解 100156.转换字符串的最小成本I 题目描述 思路分析 代码详解 100158.转换字符串的最小成本II 题目描述 思路分析 代码详解 100148.…

for each....in、for in、for of

一、一般的遍历数组的方法: var array [1,2,3,4,5,6,7]; for (var i 0; i < array.length; i) { console.log(i,array[i]); } 二、用for in的方遍历数组 for(let index in array) { console.log(index,array[index]); }; 三、forEach array.forEach(v>{ cons…

Vue cli3.0创建Vue项目

创建Vue项目 在要创建项目的文件夹下面打开Powershell窗口 输入命令 vue create 项目名称 选择第二项 回车后 选择是否使用历史路由 no 回车 选择 Less 回车 选择第三个 回车 选择第一个 回车 选择第一个 回车 是否保存模板 选择no 完成啦 完成

文件内容的输出io

package bbb; import java.io.*; public class ccc {public static void main(String[]args) throws IOException{ File filenew File("d:/1data.txt"); FileOutputStream outnew FileOutputStream(file); byte buy[]"12345abcdef#%&*软件工程".getByt…

看完后完全了解 Vue 2.0 和 Vue 3.0 的区别

1.数据的双向绑定 Vue2.0使用Object.defineProperty 原理&#xff1a;通过使用 Object.defineProperty 来劫持对象属性的 geter 和 seter 操作&#xff0c;当数据发生改变发出通知 代码&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4…

channels2.X 学习笔记

- No module named asgiref.sync 报错解决&#xff1a; # 报错原因&#xff1a; """ django版本过低&#xff0c; 卸载最新版本的 channels 使用2.x 版本的 """ pip3 uninstall channels - 安装&#xff1a; """ Django 1.11.15 …

风格迁移学习笔记

风格迁移大作业 学习规划 跑通一份代码&#xff01;&#xff01;&#xff01;&#xff08;done&#xff09;对照代码、Blog和论文理解相应的算法过程规划下一步&#xff0c;修改代码&#xff08;done&#xff09;&#xff0c;实现预计功能&#xff08;done&#xff09;调参&…