系统访问量的计算及访问量的技术控制手段

本文介绍了在预测和控制系统访问量方面的方法。通过评估各子系统的访问量和数据库交互,计算出所需的资源。在监控方面,利用CDN、静态化和实时QPS监控确保系统稳定。在流量控制上,采取并发请求限制、内存队列和分布式消息队列如ActiveMQ,以缓解高峰期压力,同时讨论了这些策略可能带来的挑战和问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      在网站推广活动之前,业务方根据经验评估出的系统访问量PV,然后根据各个系统所占的流量比例,计算出每个子系统的访问量,比如商品列表1000万,商品详情1500万,下单500万等,然后根据每个系统和数据库的交互次数,来算出数据库的访问量,比如访问量巨大的首页,我们一般存放到CDN缓存中,并且将页面进行静态化,动态数据通过异步获取,通过CDN系统的智能路由,能够将用户的请求路由到离他最近的CDN缓存机器上获取页面;系统峰值评估时,会遵循一个原则:80%的访问请求将在20%的时间内到达,则峰值qps= (总PV*80%)/(60*60*24*20%),所需要的机器数 = 峰值qps /单台机器所能承受的最高qps,可以通过访问日志分析(下回讲解),在高流量时期,实时计算出当前系统的qps值,绘出水位图:当前水位= 当前总qps/(单台机器极限qps*机器数)*100%,从而来达到监控流量的目的;

   既然我们已经知道如何监控流量,那如何来控制流量,不让流量超出它的系统最高水位呢?方法有:对系统的总并发请求书进行限制,限制单位时间内的请求次数,通过白名单机制来限制每一个接入系统调用的频率等,如果限制总并发请求,那超出来的部分浏览应该如何处理?最简单的方式直接返回,其中java中采用的信号量机制,但是这样会带来糟糕的用户体验,

java信号量机制(等待数为0)

当然直接返回的方式太粗暴,我们可以通过单机内存队列来进行有限的等待,可以提升用户体验和提高资源利用率,同样采取的还是java信号量机制;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值