美文网首页
Storm学习笔记 - 消息容错机制

Storm学习笔记 - 消息容错机制

作者: 云端笑猿 | 来源:发表于2018-10-29 14:44 被阅读0次

Storm学习笔记 - 消息容错机制

文章来自「随笔」 http://jsynk.cn/blog/articles/153.html

1. Storm消息容错机制概念

  • 一个提供了可靠的处理机制的spout需要记录自己emit(发射)的tuple(消息元祖),当下游bolt处理tuple或者子tuple失败时spout能够重新发射。
  • Storm通过调用Spout的nextTuple()发送一个tuple。为实现可靠的消息处理,首先要给每个发出的tuple带上唯一的ID,并且将ID作为参数传递给SoputOutputCollector的emit()方法:collector.emit(new Values("value1","value2"), msgId);
  • 无论处理成功还是失败,spout都要接收tuple树上所有节点返回的通知。如果处理成功,spout的ack()方法将会对编号是msgId的消息应答确认;如果处理失败或者超时,会调用fail()方法。

2. 基本实现

  • Storm 系统中有一组叫做"acker"的特殊任务,它们负责跟踪DAG(有向无环图)中的每个消息。
  • acker任务保存了spout id到一对值的映射。第一个值就是spout的任务id,通过这个id,acker就知道消息处理完成时该通知哪个spout任务。第二个值是一个64bit的数字,我们称之为"ack val", 它是树中所有消息的随机id的异或计算结果。
  • ack val表示了整棵树的的状态,无论这棵树多大,只需要这个固定大小的数字就可以跟踪整棵树。当消息被创建和被应答的时候都会有相同的消息id发送过来做异或。 每当acker发现一棵树的ack val值为0的时候,它就知道这棵树已经被完全处理了

3. 案例

  • 看一个简单的示例:spout或bolt处理完tuple后都会生成一个值(示例只使用8位),同一个ROOTID的值都会做异或,如果最终结果是0则处理过程没有出错。
    案例01
案例02 案例03 案例04

相关文章

  • Storm学习笔记 - 消息容错机制

    Storm学习笔记 - 消息容错机制 文章来自「随笔」 http://jsynk.cn/blog/articles...

  • 45Scala介绍

    在介绍一下storm的容错机制,storm容错机制1、集群节点宕机 Nimbus服务器单点故障? 非Nimbus服...

  • Storm的容错机制

    任务级容错 Bolt任务crash引起的消息未被应答。此时,acker中所有与此Bolt任务关联的消息都会因为超时...

  • Storm 性能优化

    目录 场景假设 调优步骤和方法 Storm 的部分特性 Storm 并行度 Storm 消息机制 Storm UI...

  • Storm容错机制(一):ACK机制

    前言 好久没有写文章了,然后一连就写了三篇,前两篇文章Storm入门(一):编程模型Storm入门(二):架构模型...

  • storm 消息重发机制

    Storm为确保消息的安全可靠到达每一个指定的bolt进行业务处理提供了一套可靠的安全机制 Storm的可靠性是指...

  • storm第三天

    1.storm缺点:单节点nimbus,挂掉只能自动重启2storm topology的并发度(优化)3消息机制

  • Storm的消息保证机制

    Storm提供了三种不同层次的消息保证机制,分别是At Most Once,At Least Once,Exact...

  • 40Storm

    Storm框架介绍流式处理框架storm是个实时的,分布以及具备高容错的计算系统 storm进程常驻内存 stor...

  • Storm学习笔记 - Storm初识

    Storm学习笔记 - Storm初识 1. Strom是什么? Storm是一个开源免费的分布式计算框架,可以实...

网友评论

      本文标题:Storm学习笔记 - 消息容错机制

      本文链接:https://www.haomeiwen.com/subject/qfpbtqtx.html