storm输出到mysql_Storm数据源和输出选择

1dc5ce90272e2e4296152a7bc8758b64.png

一、数据源选择:

1、实时性

我们已经不断的提到Storm是一个实时计算框架。其不能一次性获取所有的数据,进行分析处理。而是Spout不断的从外部数据源中获取最新的数据,然后交给Bolt处理。这意味着,我们的Spout必须要不断的检测外部数据源有没有最新的数据,如果有新数据了,就获取到最新的数据,然后交给Bolt处理。

2、容错

而且我们还必须要考虑的是,如果如果一条数据处理失败了,Spout必须还能再次获取这条数据,否则计算出的结果的误差就会比较大。

3、数据路由

我们已经知道一个Topology中可能会有多个Spout来从外部数据源中获取数据,假设我们有SPOUTA、SPOUTB、SPOUTC,那么某些业务场景下,我们可能希望同一条数据,SPOUTA、SPOUTB、SPOUTC都能获取到。在另外一些业务场景下,可能只希望SPOUTA获取到这条数据。如果数据源不支持路由,意味着,对于不同Topology,我们能需要开发不同的数据获取机制。这无疑增大我们的开发量。

...

从以上简单的几个要求,我们可以发现,现有的JMS消息机制,刚好满足这个条件。主流的消息中间件,如Kafka、RocketMq等。

因此,Storm的最佳数据源,实际上就是消息中间件。在本教程中,我们将使用阿里的RocketMq作为数据源进行讲解。不过,在刚开始时,我们会使用模拟的外部数据源,来帮忙我们理解Topology的工作流程。等到熟悉之后,再使用RocketMq作为外部数据源。

二、数据输出目的地的选择:

由于Storm本身是一个实时计算的框架,本身没有提供存储服务,大部分情况下,我们需要将计算出的结果存储到持久化设备中。

我们可以考虑Mysql、Hbase等任意可以持久存储数据工具。当然,根据实际情况,如果Storm输出的数据量比较大的话,我们还是会考虑Hbase,如果量比较小的话,我们可以使用Mysql。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值