-
秒杀系统的重难点
查看全部 -
高可用高并发大型网站架构
查看全部 -
令牌桶算法:
当请求为rate=1r/s的时候 就会匀速每500毫秒生产1个令牌(按倍数生产,以此类推) 每个请求都会扣除一个令牌,桶中无令牌则返回503
(令牌桶算法可以处理突发流量)
漏桶算法:
把所有的请求进行排队 当漏桶满了的时候则均匀溢出 返回503
计数器限流算法:
单位时间计数器计数即可,一般在应用程序中写的较多
请求会先通过CDN然后才会到自己的服务器(可防止ddos攻击)
查看全部 -
限流配置(在nginx.conf里面进行配置)
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s // 创建规则
(解读:我要以某一个key(一个用户的ip地址) 限制他的请求速率为1个请求每秒 给他申请的空间是10m的内存 名字为mylimit)
limit_req zone=mylimit burst=1 nodelay; // 应用规则
(解读:应用的限流规则名称为mylimit 没有后面的两个参数的话就会严格按照创建的规则进行执行 burst为允许缓存的速率数量进行排队 nodelay为不需要等待排队)
查看全部 -
安装压测工具的命令行:
yum -y install httpd-tools
ab -V (查看是否安装成功)
压测工具的使用:
ab -n100(次数) -c 10(并发量) http://xxx(接口地址)
查看全部 -
压测工具的使用
1、安装工具:yum -y install httpd-tools
2、检测是否安装成功:ab -V
3、检测接口最大qps:
ab -n100 -c10 httpd://xxx 模拟并发10人100次请求
查看全部 -
nginx限流-配置
查看全部 -
nginx限流
查看全部 -
nginx限流
查看全部 -
压力测试工具
查看全部 -
Api.php中的incUserCount方法中,lua脚本比较库存和剩余量的代码处,需要转成数字才准确,不然默认是字符串类型进行比较,我本地测试通不过。
if(field1_val > field2_val) then
if(tonumber(field1_val) > tonumber(field2_val)) then
查看全部 -
链路流量优化的思路是:分而治之。
查看全部 -
因为lua 是单进程,所以不可能出现2个用户同时执行lua脚本,从而防止边界问题。
查看全部 -
千万秒杀扣库存设计查看全部
-
nginx限流查看全部
举报