Storm Trident使用心得

来源:互联网 发布:云计算全球的影响力 编辑:程序博客网 时间:2024/06/05 05:25

Trident 中含有对状态化(stateful)的数据源进行读取和写入操作的一级抽象封装工具,Trident 使用一种容错性的方式实现对 state 的管理,这样,即使在发生操作失败或者重试的情况下状态的更新操作仍然是幂等的,State 的更新过程支持多级容错性保证机制,考虑到可能存在的处理失败情况,tuple 有可能需要重新处理


有三类支持容错性的 spout:“非事务型”(non-transactional)、“事务型”(transactional)以及“模糊事务型”(opaque transactional)。


事务型 spout(Transactional spouts)

记住一点,Trident 是通过小数据块(batch)的方式来处理 tuple 的,而且每个 batch 都会有一个唯一的 txid。spout 的特性是由他们所提供的容错性保证机制决定的,而且这种机制也会对每个 batch 发生作用。事务型 spout 包含以下特性:

  1. 每个 batch 的 txid 永远不会改变。对于某个特定的 txid,batch 在执行重新处理操作时所处理的 tuple 集和它的第一次处理操作完全相同。
  2. 不同 batch 中的 tuple 不会出现重复的情况(某个 tuple 只会出现在一个 batch 中,而不会同时出现在多个 batch 中)。
  3. 每个 tuple 都会放入一个 batch 中(处理操作不会遗漏任何的 tuple)。

0 1
原创粉丝点击