统计分析系统

第 10 封邮件问的还是那个问题:我的链接到底被点了多少次,哪个渠道最有效。代码里除了存一条映射关系,什么访问信息都没有,而统计又绝不能拖慢跳转本身。

这一章从「要采什么」开始:时间戳和目标 URL 是基础,IP、User-Agent、Referer 和 Accept-Language 用来还原访问者,UTM 参数是营销人群最关心的来源标记,地理位置则从 IP 推算。写入方式试了三轮——同步写库、异步队列、再到 Kafka 高吞吐。数据落在独立的点击日志表上,字段和索引都按查询场景设计。实时性是另一层问题:Redis 的 INCR 数总点击,HINCRBY 做设备和国家维度,HyperLogLog 用 12KB 内存统计百万级独立访客,Sorted Set 排热门榜。而当这张表冲到五千万条、四十 GB 的时候,冷热分离就成了必答题——七天内的热数据留在 Redis 和 MySQL,更早的冷数据搬进对象存储,配上分区、压缩和成本核算。

读完你应该能设计一套不影响跳转性能的点击采集链路,能解释为什么实时计数和离线分析要分开存,并能给日志数据的分层与归档画出方案。

章节

发现内容有问题?

告诉我们哪里需要改进。