- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
-
高并发解决方案
一、什么是高并发
高并发 High Concurrency〕是互联网分布式系统架构设计中必须考虑的因素
之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关
常用的一些指标有响应时间 Response Time〕,吞吐量 Throughput〕,每
秒查询率 QPS Query Per Second〕,并发用户数等。
响应时间 :系统对请求做出响应的时间。例如系统处理一个HTTP 请求需要
200ms ,这个200ms 就是系统的响应时间。
吞吐量 :单位时间内处理的请求数量。
QPS :每秒响应请求数。在互联网领域,这个指标和吞吐量区分的没有这么明显。
并发用户数 :同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,
同时在线量一定程度上代表了系统的并发用户数。
二、什么是秒杀
秒杀场景一般会在电商举行一些活动或者节假日在 12306 上抢票时遇到。对于
电商中一些稀缺或者特价商品,电商一般会在约定时间点对其进展限量销售,因
为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在
秒杀页面进展抢购。
此种场景就是非常有特点的高并发场景,如果不对流量进展合理管控,肆意放
任大流量冲击系统,则将导致一系列的问题出现,比方一些可用的连接资源被耗
. z.
-
尽、分布式缓存的容量被撑爆、数据库吞吐量降低,最终必然会导致系统产生雪
崩效应。
一般来说,大型互联通常采用的做法是通过扩容、动静别离、缓存、效劳降级
及限流五种常规手段来保护系统的稳定运行。
三、扩容
由于单台效劳器的处理能力有限,因此当一台效劳器的处理能力接近或已超出
其容量上限时,采用集群技术对效劳器进展扩容,可以很好地提升系统整体的并
行处理能力,在集群环境中,节点的数量越多,系统的并行能力和容错性就越强。
在无状态效劳下,扩容可能是迄今为止效果最明显的增加并发量的技巧之一。
从扩容方式角度讲,分为垂直扩容〔scale up〕和水平扩容〔scale out〕。垂
直扩容就是增加单机处理能力,怼硬件,但硬件能力毕竟还是有限;水平扩容说
白了就是增加机器数量,怼机器,但随着机器数量的增加,单应用并发能力并不
一定与其呈现线性关系, 此时就可能需要进展应用效劳化拆分了。
从数据角度讲,扩容可以分为无状态扩容和有状态扩容。无状态扩容一般就是
指我们的应用效劳器扩容;有状态扩容一般是指数据存储扩容,要么将一份数据
拆分成不同的多份,即 sharding ,要么就整体复制n 份,即副本。sharding 遇
到的问题就是分片的可靠性,一般做转移、rehash、分片副本;副本遇到的问
题是一致性性,一般做一致性算法,如 pa*os ,raft 等。
. z.
-
四、动静别离
动静别离,静态资源请求与动态请求别离,工程中需要访问的图片、声音、js/css
等静态资源需要有独立的存放位置,便于将来实现静态请求别离时直接剥离出
来,比方ngin*可以直接配置图片文件直接访问目录,而不需要经过tomcat。
这样tomcat就可以专注处理动态请求,操作数据库数据处理之类的。静态请求
代理效劳器性能比tomcat高很多。
动静别离是指,静态页面与动态页面分开不同系统访问的架构设计方法。
一般来说:
静态页面访问路径短,访问速度快,几毫秒
动态页面访问路径长,访问速度相对较慢(数据库的访问,网络传输,业务逻辑
计算) ,几十毫秒甚至几百毫秒,对架构扩展性的要求更高
静态页面与动态页面以不同域名区分
系统需要将动态数据 和静态数据分而治之,用户对静态数据的访问,应该防止
请求直接落到企业的数据中心,而是应该在CDN中获取,以加速系统的响应速
度。
五、缓存
缓存之所以能够提高处理速度,是因为不同设备的访问速度存在差异。缓存的话
题可以扯几本书不带重样的。从CPU可以一直扯到客户端缓存,即从最底层一
.
原创力文档


文档评论(0)