【129.1】大型网站技术架构 并发相关知识

news/2024/5/9 5:07:54/文章来源:https://blog.csdn.net/weixin_39534472/article/details/122187195

一:什么是高并发?

高并发指的是并发数量,是指同一时间有多少个访问同时来访问同一api接口或者url地址。

二:高并发相关概念

1)(每秒查询率):每秒请求或者查询的数量,在互联网领域,指每秒响应请求数(指HTTP请求);

   a) 使用ab对Nginx进行压力测试b) Mysql状态查看QPS
show  global  status like 'Question%';

QPS(每秒Query量)
QPS = Questions(or Queries) / seconds

QPS(Query Per Second),QPS 其实是衡量吞吐量(Throughput)的一个常用指标,就是说服务器在一秒的时间内处理了多少个请求 —— 我们通常是指 HTTP 请求,显然数字越大代表服务器的负荷越高、处理能力越强。作为参考,一个有着简单业务逻辑(包括数据库访问)的程序在单核心运行时可以提供 50 - 100 左右的 QPS,即每秒可以处理 50 - 100 个请求。

ab 接口压力测试工具使用

ab -n 1000 -c 100 http://www.baidu.com/
-n  总的请求数
-c  并发数
-k 是否开启长连接
-n 1000 总请求数1000
-c 100 单个时刻并发数100

(2)PV(Page View):综合浏览量,即页面浏览量或者点击量,一个访客在24小时内访问的页面数量(注:同一个人浏览你的网站的同一页面,只记做一次pv);

  a) PV的统计:PV是每次加载页面都加1;

(3)UV(Unqie Vistor):独立访客,一定时间范围内,相同访客多次访问网站,只计算为1个独立访客;

(4)吞吐量(fetches/sec) :单位时间内处理的请求数量 (通常由QPS和并发数决定);

(5)响应时间:从请求发出到收到响应花费的时间;

(6)带宽:计算带宽需关注两个指标,峰值流量和页面的平均大小;

(7)日网站带宽: PV/统计时间(换算到秒) * 平均页面大小(kb)* 8;

注意事项:

(1)QPS不等于并发连接数(QPS是每秒HTTP请求数量,并发连接数是系统同时处理的请求数量);

(2)峰值每秒请求数(QPS)= (总PV数80%)/ (六小时秒数20%)【代表80%的访问量都集中在20%的时间内】;

(3)压力测试: 测试能承受的最大并发数 以及测试最大承受的QPS值;

(4)常用的性能测试工具【ab,wrk,httpload,Web Bench,Siege,Apache JMeter】
三.优化
在这里插入图片描述
四、解决方案案例
1)流量优化 – 去除一些恶意请求,进行防盗链处理;

   a) Referer:以Nginx为例,前提加载ngx_http_referer_module模块 (易伪造referer,安全性低)
location ~* \.(gif|jpg|png|webp)$ {
#指令valid_referers  全局invalid_referervalid_referers none blocked domain.com *.domain.com ;if ($invalid_referer) {return 403;#rewrite ^/ http://www.domain.com/403.jpg;}
}

b) 加密签名:通过签名,根据计算签名的方式,判断请求是否合法,如果合法则显示,否则返回错误信息
加密签名 (安全性高)

#以Nginx为例,前提加载第三方模块HttpAccessKeyModule实现防盗链
location ~* \.(gif|jpg|png|webp)$ {accesskey on;accesskey_hashmethod md5;accesskey_arg key;accesskey_signature "mysrc$remote_addr";
}

(2)前端优化;
减少http请求次数;
a) CSS Sprites(雪碧图) – 合拼图片,再使用css的background-image和background-position来指定显示元素 CSS Sprites与图片地图性能差不多,但CSS Sprites更加简单灵活;

b) 合并JS与CSS文件 – 加载一个JS文件比加载多个JS文件要快,一般会使用前端自动构建工具打包合并;

c) 图片使用base64编码 – 图片base64除了可以使用在中,还可以使用在css的background-image中;

d) 图片地图 – 把多张图片合成一张,再使用标签来实现对图片上不同区域的链接;

 2. 添加异步请求,当用户触发某个事件之后,再异步请求数据;3. 启用浏览器缓存和文件压缩;4. CDN加速;5. 将图片以及文件类放在其他服务器上(减少I/O);

3)服务端优化;

1. 页面静态化处理;2. 并发处理;3. 队列处理;

(4)数据库优化;

1. 数据库缓存;2. 数据库读写分离;a) 对于高并发系统来说,一开始都是读多写少,大量的读请求经过业务层到达持久层之后对数据库产生了极大的压力,此时就会准备一个和生产库一致的数据库来单独接收处理读请求,一般这个叫做从库,也会被称为读库,高并发流量中的读请求会被引流到从库,而写请求还是在主库写,主库和从库之间依靠主从复制机制来确保两个库的数据近乎实时一致,这样用户在读请求的时候几乎发现不了数据的不一致。3. 对数据库进行分库、分表;a) 读写分离主要是为了应对读请求,那如果写请求的流量大,就会考虑用到对数据库进行分库分表操作;4. 负载均衡;(5)WEB服务器优化;

Nginx反向代理实现负载均衡;
lvs实现负载均衡;

参考资料:
【1】大型网站技术架构

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

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

相关文章

jQuery Mobile在微信建站方面的应用

jQuery Mobile在微信建站方面的应用 2014年10月28日 电子商务、网站建设 jQuery Mobile、微信建站 感谢这个不断变革的时代,让我这个三十六岁的IT老兵重新拾起武器开始微信建站,拥抱移动互联网。大概有两年多的时间已经没有正式参与建站工作了&#xff0…

NMPA可以解析了 国家药品监督管理局网站

国家药品监督管理局网站有很多药品、保健品数据,很多人需要相关数据所以才去采集。但是,NMPA网站的反爬一直走在最前线,爬虫的程序一直无法很好工作。 现在,搞定了。 目前可以使用程序打开药监局网站,然后到药品页面…

scrapy爬取某视频网站的部分视频信息

此次爬取的信息有: 1、视频名称 2、在线观看人数 3、弹幕内容 4、弹幕发送时间 5、弹幕在视频中的位置 6、点赞 7、收藏 8、投币数 由于b站的很多信息是动态加载的。所以部分信息,需要自己抓包,进入对应的网址抽取信息。例如在线观看视频人…

一个将多线程多进程结合爬取图片网站的示例

在图片网站爬取图片时候,我们需要取得具体每张图片的url地址,然后下载到电脑保存下来。这其中,对时间消耗最多的步骤是保存图片到本地硬盘,机械硬盘的读写性能速度较慢。如果采取单线程单进程的话,在读写的同时没法进行…

将代码提交到github的两种方式(其他项目管理网站类似)

首先先去git官网下载git,现在就去. 下载完成之后,右键git bash 使用命令行配置你的git的用户名和邮箱,因为git是分布式系统,所以每个用户都是独立的 命令行输入: git config --global user.name "Your Name"git config --global user.email "emailexample.com…

​​​资源分享 | 一、盘点高清壁纸网站​​

​​​资源分享 | 一、盘点高清壁纸网站​​​​​​​​​​ ​​1. wallroom​​ ​​​​2. 极简壁纸​​​ ​​​​3. 高清壁纸库​​ ​​​​4. 动漫图片和壁纸​​ ​​​​5. Wallpaper Abyss​​​​ 资源分享 | 一、盘点无版权图片网站 作者:1024导…

微信开放平台申请网站应用

前言: 这是一篇我想严重吐槽的文章,我需要做一个微信扫码功能,我看了下文档,发现没有那么难,结果一开始我就卡壳,申请网站应用我申请了四次,我很奔溃,关键是我搞不懂的是为什么审核…

让你的网站应用加上微信扫码功能

前言: 继上篇文章在微信开放平台申请网站应用以后,我们就可以正式开始做微信扫码登录这个功能了,接下来这篇文章我将用最通俗易懂的话语让大家掌握整个微信扫码开发的流程,其实真的很简单,只要认真阅读官方文档,一步步…

python3.2 自动登录网站

让我帮写个小程序,查了查资料,用python写了一个,以前没用过,都是现查的资料,比较粗糙,放到这里留作备用。 1 import urllib.parse 2 import urllib.request 3 4 # ------------------------------需…

Python 自动登录网站(处理Cookie)

Python 自动登录网站(处理Cookie) 博客分类: Python Python代码 def login(): cj cookielib.CookieJar() opener urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_url rhttp://zhixing.bjtu.edu.cn/memb…

Python 最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表。 实现方式: 通过goog

Python 最近因开发项目的需要,有一个需求,就是很多SNS网站都有的通过 Email地址 导入好友列表,不过这次要导入的不是Email 列表,而是QQ的好友列表。 实现方式: 通过google一搜,实现的方式大概有下面这篇文…

wordpress搜索引擎蜘蛛统计插件SEO

索引擎蜘蛛统计插件可以实时对搜索引擎来访进行统计,指导站长的运营,来访的蜘蛛类型和访问的页面都能在后台一目了然! 免费使用下载https://yomeiyo.lanzouw.com/ifh5300s4p7a安装即可 插件安装方法 上传压缩包安装插件 如果是付费插件的话…

用Django建一个网站

目标:用最短的步骤在本机创建一个网站。 第一步 安装好Django之后,在放置网页的目录下打开命令行,输入 django-admin startproject mysite 即可自动创建一个名为mysite的文件夹。 进入mysite文件夹,创建第一个web程序app01(任意):…

提升大型网站并发访问性能

应用服务器 网络应用 中国电信 Linux配置管理 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰…

requests 正则表达正式基础爬虫案例二:爬取网站数据

要求:爬取https://ssr1.scrape.center/ 网站中所有电影标题、类型、地区、电影时长、上映日期、评分、简介; 分析:网站共有两个页面组成,电影列表和详情,我们所需要的内容都在详情页面里面可以找到。 列表页面共10页&a…

PC端网站 rem适配方案

以1920设计稿为准 1、使用sass语法 转换px rem , vscode编辑器安装插件easy-scss 安装之后打开插件setting.json, 在setting.json里配置转换后css的路径 “easysass.targetDir”: “./css” 创建css文件、scss文件: 项目中如何使用index.sc…

给大家分享下织梦网站模板

最近需要用到一个官网模板,作为一个后台程序员来说写前端和专业的差了远了,所以想找个模板学习下,可是我这面是一顿搜一顿找找了好多都快绝望了因为都不是免费下载的不过最终还是找到了,在这里分享给大家 模板一 红色大气响应式重…

网站案例,成功案例--我的个人作品

西南贝思建筑图书连锁店网上书店成都美可快餐诚信促进会 成都商务投资网中国西部土工材料网广东劳斯丹顿卫浴设备有限公司盛世外贸服装批发城西南时报成都免费网站中国检察网成都乐于健康护理成都顺世文化传播有限公司西南大学生联盟成都川国味餐饮有限公司成都市科技进修学院…

vue 微软插件实现根据第三方网站链接预览word、pd、excelf等文件

一开始做的时候没想到会预览不了,报错 File not found The URL of the original file is not valid or the document is not publicly accessible. Verify the URL is correct, then contact the document owner.如下: 我在微软官网查到: 官…

世界第五大外包公司(CGI group inc)能够做出来多烂的网站,通过系分的课程设计我对于人机交互和团队合作的几个总结

文章目录 前情提要为开始刨祖坟模式做准备CGI inc发家史什么是外包公司CGI group inc看看CGI公司外包的网站你以为CGI做的网站这就算差了?听说你想自己改成好记的密码,想多了吧信息填写一次过,听说你想写到一半保存?我是随便的人吗…