高并发项目通常是javaWeb 项目中ToC 场景,例如常见的秒杀,抢票。
从项目开发到上线,整个项目周期都需要关注热点数据,准去的预测和监控热点数据可以帮助开发更好的实现系统。
这篇文章从小处入手,浅析高并发的架构设计。
一、 什么是热点
热点分为热点操作和热点数据。
1.1热点操作
所谓“热点操作”,例如大量的刷新页面、大量的添加购物车、双十一零点大量的下单等都属于此类操作。对系统来说,这些操作可以抽象为“读请求”和“写请求”,这两种热点请求的处理方式大相径庭(差不多),读请求的优化空间要大一些,而写请求的瓶颈一般都在存储层,优化的思路就是根据 CAP 理论做平衡。
1.2 热点数据
而“热点数据”比较好理解,那就是用户的热点请求对应的数据。而热点数据又分为“静态热点数据”和“动态热点数据”。
静态热点数据
所谓“静态热点数据”,就是能够提前预测的热点数据。例如,我们可以通过卖家报名的方式提前筛选出来,通过报名系统对这些热点商品进行打标。另外,我们还可以通过大数据分析来提前发现热点商品,比如我们分析历史成交记录、用户的购物车记录,来发现哪些商品可能更热门、更好卖,这些都是可以提前分析出来的热点。
动态热点数据
所谓“动态热点数据”,就是不能被提前预测到的,系统在运行过程中临时产生的热点。例如,卖家在抖音上做了广告,然后商品一下就火了,导致它在短时间内被大量购买。
二、发现热点
架构通常是分层和异构的,我们利用Linux 、jvm 或者mysql的监控工具 通常可以准确的定位热点操作
2.1 nginx 日志分析
nginx 日志中包含请求路径,可以通过命令分析 热点请求路径:
cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr | head -10
cat log_file|awk '{print $11}'|sort|uniq -c|sort -nr|head -20
awk '{print $1}' log_file |sort -n -r |uniq -c | sort -n -r | head -20
如果使用阿里云服务器,其访问入口自带热点分析功能。
或者使用工具搭建一套日志分析服务

GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix

最低0.47元/天 解锁文章
1210

被折叠的 条评论
为什么被折叠?



