storm+kafka+redis的实时订单流
Posted Nathon的学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了storm+kafka+redis的实时订单流相关的知识,希望对你有一定的参考价值。
在互联网或者电商场景里面,统计实时数据的场景还是很常见的。比如,在每天某些时段或者特殊的节日会统计订单商品的销量,通过这些数据可以让运营人员作决策。这种场景下就有几个问题需要提前考虑:
实时数据如何获取;
数据获取后需要快速计算;
有些时间段的数据量是庞大的,那么需要有地方来缓存结果,并且缓存的结果能够快速提取作展现。
因此,采用的架构是订单系统+kafka+storm集群+redis集群的方案来实现。
简单分解下就是,通过订单系统发送订单到kafka集群,然后通过storm消费实时数据并且计算订单的数量和金额,接着将计算的结果缓存至redis中。
具体的实现如下:
通过spout获取外部数据源,这里我定义了一个主类用于storm和kafka集群连接;
2.对获取的订单进行解析,生成一个对象,这里定义了一个orderinfo的javabean;
3.将javabean里面计算的结果缓存至redis,核心代码如下;
基本工程已经调试完毕,来看看实际效果,启动storm和kafka集群,redis服务。
在redis中,已经缓存商品实时变化的数据结果。
以上是关于storm+kafka+redis的实时订单流的主要内容,如果未能解决你的问题,请参考以下文章
Flume+Kafka+Storm+Redis实时分析系统基本架构