
大数据高并发优化
文章平均质量分 75
一只路人甲
有梦想的路人甲
展开
-
电商秒杀系统
假设有100万人来抢购100个商品,既然大部分人都不可能抢到,那我们完全可以在用户提交下单请求时生成一个 0 ~ 100 的随机数,如果这个数大等于 2 则直接告诉用户抢购的人太多请重试,这样能落到 Redis 的请求就只剩下了 2% 也就是 2 万人。在代码层面可以使用路由中间件来实现。先判断是否有库存和是否有抢购权限,如果有,立刻返回抢购成功,完成抢购。完成抢购后生成订单等耗时的操作使用rabbitmq等消息中间键做异步队列来执行。原创 2024-06-16 17:32:56 · 504 阅读 · 0 评论 -
接口防抖(重复点击)
可以给某字段增加唯一索引(唯一约束和唯一索引不同的两个东西,唯一约束是通过唯一索引实现,添加唯一约束就生成了唯一索引,但是添加唯一索引不会自动生成唯一约束,字段中的null值被认为是不同的)请求A接口带上这个token,A接口会判断缓存中是否有此token,如果有此token,则响应请求。请求接口的时候先判断是否有此请求的缓存,如果没有,处理请求,然后将此请求加入缓存,并设置过期时间。在请求A接口(提交数据)前先请求获取唯一码的接口B(获取数据)来获取。后端处理的方法就比较多了,下面说常用的几种。原创 2024-05-09 14:20:49 · 478 阅读 · 0 评论 -
nginx日志统计qps
以支付宝为例,每秒钟需要处理大量的交易请求,因此TPS是支付宝必须要关注的性能指标。对于一个高并发应用来说,QPS是非常重要的性能指标,它反映了应用处理请求的能力。举个例子,假设有一个电商网站,这个网站每天需要处理100万个订单请求,那么每秒钟需要处理的订单数量就是1000000 / 86400 ≈ 11.57。tail -f命令用于实时输出日志内容,awk命令用于提取日志中的时间戳信息,cut命令用于截取时间戳中的秒数信息,uniq -c命令用于统计每个秒数内的请求数。可以统计服务一天的访问日志得到。原创 2024-03-19 21:22:46 · 1732 阅读 · 0 评论 -
php商品秒杀超卖问题测试和redis解决学习
我们知道在多线程写入同一个文件的时候,会存现“线程安全”的问题(多个线程同时运行同一段代码,如果每次运行结果和单线程运行的结果是一样的,结果和预期相同,就是线程安全的)。如果是MySQL数据库,可以使用它自带的锁机制很好的解决问题,但是,在大规模并发的场景中,是不推荐使用MySQL的。秒杀和抢购的场景中,还有另外一个问题,就是“超发”,如果在这方面控制不慎,会产生发送过多的情况。我们也曾经听说过,...原创 2020-06-20 12:01:55 · 453 阅读 · 1 评论 -
Linux下查看进程和端口信息
Linux下查看进程和端口信息1、根据进程名查看进程信息,以查看tomcat进程名为例,查看所对应的进程id为1095(或者使用: ps -aux | grep tomcat 查看占用内存等信息)ps -ef | grep tomcat2、根据进程id查看进程占用端口,查看对应端口为8080(如果没有netstat命令,使用 yum -y install net-tools安装)ne...转载 2019-05-14 09:50:31 · 194 阅读 · 0 评论 -
网站架构演化
前言我们以Java Web为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理正文阶段一、单机构建网站网站的初期,我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器,如Tomcat、Jetty、Jboss,然后直接使用JSP/Servlet技术,或者使用一些开源的框架如...原创 2019-05-14 15:18:41 · 139 阅读 · 0 评论