持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情
每日英语:
Numbing the pain for a while will make it worse when you finally feel it.
翻译:短暂地麻痹痛苦,当你最终感受到它时,痛苦只会变得更强烈。 ——《哈利·波特与火焰杯》
热门商品数据分析收集方案
在秒杀抢购过程中,热门商品对服务器造成的压力巨大,很有可能直接导致服务器宕机,对热门分析的抢单过程应该单独处理,尤其是抢单过程中慢慢变成热门的商品,对他们要具备发现能力。
1)历史热门数据分析
我们可以从历史交易订单、历史收藏商品、历史购物车记录、历史搜索关键词中分析哪些商品是热门商品,然后将热门商品保存到Redis缓存中,用户每次下单,如果缓存中有数据,证明是热门分析,如果缓存中没有数据,则证明是非热门分析。
2)热门数据分析发现
上面的方案只能实现历史热门数据分析,但抢购过程中的热门数据分析我们也要具备发现能力,如上图:
1:用户请求到达Nginx,我们可以通过log_by_lua记录访问日志
2:log_by_lua将日志发送到Kafka,日志也应该是有用的日志,最好做垂直日志收集
3:大数据实时分析系统Apache Druid消费log_by_lua发送的日志
4:java程序定时通过DruidSQL从Apache Druid中分析数据
5:分析的数据如果是热门的,就将数据存入到Redis集群中
从上面的分析流程来讲,我们需要掌握这么几门技术的应用:
1:Nginx
2:Lua
3:Kafka
4:Zookeeper
5:Apache Druid
6:Druid SQL
总结
本篇主要讲述了一下热门商品数据分析收集方案的两种方案,一种是历史热门商品数据分析发现,另一种是抢购过程中的热门数据分析发现。接下来的几篇我会对上面提到的这几门技术进行一下介绍,最终实现用户访问详情页日志收集。