pig2 发表于 2014-5-2 19:26:57

Storm实时数据分析的常用架构(组合):队列服务器+storm集群实时处理+mysql存储

问题导读:
1.Storm实时组合,如何获取数据?
2.消息队列服务器可以采用什么技术?
3.消息在Storm中的传输由Storm框架的collector收集发射完成?
4.处理结果可以放在什么数据库中?

static/image/hrline/4.gif





利用Storm进行实时数据分析的常用组合方式:
队列服务器+storm集群实时处理+mysql存储

对应上图中的五个环节,分别是:
步骤①:消息队列,消息队列服务器分为生产者和消费者。由生产者到数据库、队列服务器、文件或其他存储介质里面获得数据,生产者的工作需要单独配置或编码实现。队列服务器提供消费接口,通过此接口可以消费队列服务器中的数据。常见的用于实时分析的消息队列服务器有Kafka/meatQ,订单中心使用的队列服务器是Amq。相对来讲Amq更加稳定,Kafka/meatq更适合做吞吐量比较大的场景。

步骤②:在Storm框架编程模型中,数据源的接入模块式是Spout。kafka/meatQ针对Storm的Spout模块做了开源和成熟的插件。直接在Storm中集成这些开源的插件,即可实现数据从队列服务器到Storm的接入。

步骤③:消息在Storm中的传输由Storm框架的collector收集发射完成,用户可以不用关注怎么传输。消息的处理有Storm编程模型的Bolt模块去实现,Bolt负责具体的业务规则的判定和实现,一个业务中一般会有多个Bolt。

步骤④:Bolt计算的临时数据,一般会存放在redis或zookpeer中,在Bolt的execute方法中操作它们。

步骤⑤:消息的落地,会存放在mysql等关系型数据中。




来源: Storm实时数据分析的常用架构(组合):队列服务器+storm集群实时处理+mysql存储
页: [1]
查看完整版本: Storm实时数据分析的常用架构(组合):队列服务器+storm集群实时处理+mysql存储