您的位置:首页 > 其它

storm的特性与使用场景

2016-08-24 00:05 232 查看


Storm的一些关键特性

适用场景广泛: storm可以实时处理消息和更新DB,对一个数据量进行持续的查

询并返回客户端(持续计算),对一个耗资源的查询作实时并行化的处理(分布式

方法调用,即DRPC),storm的这些基础API可以满足大量的场景。

 可伸缩性高:  Storm的可伸缩性可以让storm每秒可以处理的消息量达到很高。

扩展一个实时计算任务,你所需要做的就是加机器并且提高这个计算任务的并行

度 。Storm使用ZooKeeper来协调集群内的各种配置使得Storm的集群可以很容易

的扩展。

3. 保证无数据丢失: 实时系统必须保证所有的数据被成功的处理。 那些会丢失

数据的系统的适用场景非常窄, 而storm保证每一条消息都会被处理, 这一点和

S4相比有巨大的反差。

4. 异常健壮: storm集群非常容易管理,轮流重启节点不影响应用。

5. 容错性好:在消息处理过程中出现异常, storm会进行重试

6. 语言无关性: Storm的topology和消息处理组件(Bolt)可以用任何语言来定义, 这一点使得任何人都可以使用storm.

Storm 应用场景

推荐系统:实时推荐,根据下单或加入购物车推荐相关商品(而不是相似商品)

金融系统

预警系统

网站统计:实时销量、流量统计


1.流聚合:流聚合把两个或者多个数据流聚合成一个数据流-基于一些共同的tuple字段

如:

2.批处理:有时候为了性能或者一些别的原因,你可能想把一组tuple一起处理,而不是一个个单独处理
如:

3.BasicBolt:读入一个输入tuple,根据这个输入tuple发射一个或者多个tuple,在execute的方法的最后ack那个输入tuple遵循这类模式的bolt一般是函数或者是过滤器,这种
模式很常见,storm为这类模式单独封装了一个接口:IbasicBolt

4.内存内缓存+Fields grouping组合。

5.计算top N:在多台机器上面并行的计算这个流每一部分的top N,然后再有一个bolt合并
这些机器上面所计算出来的top N算出最后的top N.

6.用TimeCacheMap来高效的保存一个最近被更新的对象的缓存

7.分布式RPC:CoordinatedBolt和KeyedFairBolt.storm做分布式RPC应用有两种常见的模式:他们被封装在CoordinateBolt和KeyedFairBolt里面
  CoordinatedBolt包装你的bolt,并且确定什么时候你的Bolt已经接受到所有的tuple,他主要使用DirectStream来做
  KeyedFairBolt:包装你的Bolt并且保证你的topology同时处理多个DRPC调用,而不是串行的一次只执行一个

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  storm