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

storm的act机制原理

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-12-18
  • 2021-05-15
  • 2021-05-06
  • 2021-07-20
猜你喜欢
  • 2021-06-26
  • 2021-07-24
  • 2022-02-01
  • 2022-12-23
  • 2021-04-21
  • 2021-05-25
  • 2021-06-30
相关资源
相似解决方案