storm值得知道的知识点

[复制链接]
admin 发表于 2019-3-7 14:44:23 | 显示全部楼层 |阅读模式
  • storm jar storm-starter-topologies-0.9.3.jar storm.starter.ExclamationTopology ExclamationTopology

  • 1、就收回调ack或者fail后,只传回来messageId,没有消息,我们要手动重新发送吗?
a)msgid是object类型的,我们可以在spout的初期发射的时候将msgid设置为tuple



  • 2、如何设置回调ack方法呢?
a)首先可以在main设置acker的线程数conf.setNumAckers(1);

b)在发送消息的时候设置msgId



  • 3、设置streamid
a)在spout发射的时候设置streamid

b)在declared的时候声明streamid

c)在grouping的时候设置streamid


  • 4、消息可靠机制
a)在spout发送消息给bolt1的时候,bolt1继续往后发给bolt2

b)bolt2中有一个任务失败,只要调用了fail方法,在spout的fail方法中,我们可以进行消息的重新发送

c)所有成功的excuteor要调用ack方法,否则超时重发。


  • 5、spout能够继承和实现的接口
spout只能实现IRichSpout 或者 继承 BasicRichSpout

而这两个东西需要我们手动调用ack和fail方法,

但是如果后面的bolt实现的不是rich相关的接口或类,

就会自动帮我们调用相应的ack和fail



  • 6、bolt能够实现的接口或者继承的类
a)basic相关的接口或者类,会自动调用ack或者fail

b)rich相关的接口或者类,需要手动调用ack和fail



  • 7、OutputCollector、BasicOutputCollector、SpoutOutputCollector区别
a)OutputCollector和BasicOutputCollector、SpoutOutputCollector都能够调用emit方法发射数据

b)OutputCollector能够调用ack和fail方法,用来通知spout处理。其他两个不能。

c)OutputCollector一般和Rich相关的接口结合使用。




  • 8、尝试下,如果没有设置worker数,默认是几个?
默认是一个



【智云杂货铺 bbs.0936sht.com】
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则