storm的act机制原理

act机制总结

1、spout发送的一条消息,会有系统生成一个ROOTID(一个64为随机数)

2、由于用户在发送数据的时候,指定了meeeageId,所以在发送数据的时候,会创建一个pendingMap

      map以ROOTID为key,以用户的messageId为value

DataTuple:含有数据

ActTuple:不含有数据   含有ROOTID 锚点ID

3、spout将数据发送给bolt的时候,不仅发送了一份DataTuple给下游的bolt,还发送一份ActTuple消息给ActBolt

     区别ActTuple没有数据,只有rootID和锚点id

4、bolt处理完业务逻辑后,发送一份act信号,把act信号转化为actTuple

5、acter Bolt将接受到的ActTuple 使用异或的算法进行计算(将锚点ID进行异或) 产生结果是<ROOTID,VALUE ==0>

6、 一旦消息处理成功 acter Bolt 发送一个tuple出来 标志消息处理成功 然后将ROOTID转化为messageid  <messageid,VALUE ==0>发送给spout调用act       

ROOTID:用来标志一条消息 锚点id 均是一个64位的随机数 也是用来区别tuple

ROOTID、锚点ID、messageid区别:

messageid:是用户在spout发送消息时指定的

ROOTID、锚点ID:是随机生成的64位 的随机数

messageid和ROOTID会在发送消息时候放在一个pendingmap中  在acter bolt返回结果时候会通过这个pendingmap,由ROOTID找到对应的messageid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值