高并发解决方案-我的理解
2020-03-19 10:09:43 来源:admin 点击:997
高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。直白点,就是在同一时间点,有多少个用户来访问。
响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
吞吐量:单位时间内处理的请求数量。
QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
我们高并发问题中,应该关心什么?
高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数、PV综合浏览量,页面浏览量和访问量、UV独立访客,一定时间范围访问网站多次,只能计算为一个访客等。
如何提前发现高并发问题
知道整个网站的日qps ,单台服务器压力测试分值qps
ab -c 100 -n 5000 测试网站地址
安装
qps50,不需要优化、qps100 就得缓存或者负载均衡、qps800 cdn加速、 qps1000网站静态化 、qps2000业务分离、分布式锁
解决高并发的思想
互联网分布式架构设计,提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。
1.流量优化
1.1防盗链处理
1.2前端优化
减少http请求:合并css,js,图片等
添加异步请求,不一次性全给用户
应用浏览器缓存和文件压缩
Cdn加速,可以解决带宽不够用的情况
建立独立的图片服务器
2.服务端优化:
页面静态化
并发处理:异步处理
队列处理:
3.数据库优化
Redis和memcache缓存
分库分表
分区操作
读写分离
负载均衡
4.Web服务器优化
负载均衡 nignx
7层网络协议
表示层
这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
会话层
它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
传输层
这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCP,UDP,SPX。
网络层
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
数据链路层
它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
物理层
OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。连接头、帧、帧的使用、电流、编码及光调制等都属于各种物理层规范中的内容。物理层常用多个规范完成对所有细节的定义。示例:Rj45,802.3等。