背景
在没有Storm/Spark Streaming等基础流式计算框架的时候,利用现有的Redis框架,参照流式计算的原理,实现伪流式计算。
计算方式设计
运行过程
Step1
活动页面详情的接口,每调用一次,发异步事件给监听者。Step2
异步事件监听者调用Redis的set & inc方法,累加当前小时PV量。
Redis的KEY设计:ClientType:ProductId:Hour,来源端:产品ID:当天小时,循环使用。
Step3
Job将Redis中的浏览量同步落地到DB中,同时将非当前小时的Redis Key的值置为0。
线上效果
是在没有流式计算框架下的无奈选择。另外,由于前台有一些异步刷新的机制,后台服务几次调用才能计算到一次PV,所以后台统计的值往往比前台埋点统计的值要大一些。