实时业务指标分析 ---没用

需求:
1、采集订单系统应用打印的日志文件
日志文件使用log4j生成,滚动生成。
xxxx.log xxxx.log xxxx.log
xxxx.log.1 xxxx.log.1
xxxx.log.2
2、将采集的日志文件保存到kafka中
(source) 输入:tail -F xxxx.log
(channel)存储:内存
(sink) 输出:kafka

config
al.source = s1
a1.channel = c1
al.sink = k1

source ==> exec tail -F xxxx.log
channel ==> RAM
sink ====> xxx.xxxx.xxxx.KafkaSink //该类必须存放lib目录
sink.topic = orderMq
sink.itcast = itcast

------------------------------
map = getConfig()
value = map.get("itcast")

3、通过Storm程序消费Kafka中数据
KafkaSpout()
Bolt1()
Bolt2()

-------------------------------------------------------------------------
业务:
订单系统---->MQ---->Kakfa--->Storm

数据:订单编号、订单时间、支付编号、支付时间、商品编号、商家名称、商品价格、优惠价格、支付金额

统计双十一当前的订单金额,订单数量,订单人数

订单金额(整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品)
totalAmount b1Amount c1Amount s1Amount p1Amount ……
b2Amount+ c1Amount s1Amount p1Amount
b3Amount c1Amount s1Amount+ p1Amount
b4Amount c1Amount s1Amount p1Amount
c1Amount s1Amount p1Amount
c1Amount s1Amount p1Amount
c1Amount+ s1Amount p1Amount
c1Amount s1Amount p1Amount
s1Amount p1Amount
s1Amount p1Amount
s1Amount p1Amount
s1Amount p1Amount
s1Amount p1Amount
s1Amount p1Amount+
……

sql-->update
整个网站,各个业务线,各个品类,各个店铺,各个品牌,每个商品
Redis--->
整个网站:totalAmount
各个业务线:b1Amount,b1Amount,b1Amount,b1Amount,b1Amount
各个品类:c1Amount,c1Amount,c1Amount,c1Amount,c1Amount
各个店铺:s1Amount,s1Amount,s1Amount,s1Amount,s1Amount,s1Amount,s1Amount
各个品牌: p1Amount,p1Amount,p1Amount,p1Amount,p1Amount,p1Amount,p1Amount
每个商品:pidAmount,pidAmount,pidAmount,pidAmount,pidAmount,pidAmount


totalAmount = get(totalAmount)
totalAmount = set(totalAmount+orderAmount)

订单数量(整个网站,各个业务线,各个品类,各c1Amount个店铺,各个品牌,每个商品)
订单人数(整个网站,各个业务线,各个品类,各c1Amount个店铺,各个品牌,每个商品)



处理流程:
1、Spout获取外部数据源,数据源是订单的mqmq有固定的格式,比如json串
2、对订单mq进行解析,得到一个对象->JavaBean
订单编号、订单时间、支付编号、支付时间、商品编号、商家名称、商品价格、优惠价格、支付金额
3、对指标进行计数
//业务中一个订单包含多个商品,需要对每个商品进行指标计算
//创建订单和取消订单两种类型,在计算总数据的是考虑将取消订单的金额减掉
//订单中有拆单的逻辑,该如何计算
4、保存指标数据到Redis

Storm程序
KafkaSpout
FilterBolt
IndexCountBolt


作业1:集群搭建成功
作业2:实时业务指标结合redis进行统计
作业3:算出各个业务线,各个品类,各c1Amount个店铺,各个品牌,Top10,并实时打印出来 
榜单、榜单、榜单
作业4:转化

原文地址:https://www.cnblogs.com/shan13936/p/13837934.html