storm会有一个ackbolt 不断计算top 每个spout,bolt task的msgid ,来确认调用act 方法还是fail方法 ;
如下示列
1.如下图
1.spout 向ackbolt 报上去的 rootId=T1^T2
2.bolt1 向ackbolt 报上去的 rootId=T1^T3^T4^T5
3.bolt2 向ackbolt 报上去的rootId=T2
4.bolt3 向ackbolt 报上去的rootId=T3^T4^T5
actbolt 算出来的这条消息的结果是T1^T2^T1^T3^T4^T5^T2^T3^T4^T5 如果为0 则反回给spout 调用ack方法说明消息成功,否则调用fail方法
相关推荐
### Storm原理分析 #### 一、Storm基本结构 Apache Storm 是一个开源的分布式实时计算系统,主要用于处理流式数据。Storm 提供了一种简单而强大的模型来定义并行计算过程,使得用户能够轻松地处理无限的数据流。...
以上这些知识点对于理解Storm的工作原理至关重要,它们涵盖了从Storm的基本架构、进程启动和初始化、Topology的创建和提交,到消息的接收、传递以及可靠性的保证。通过深入分析这些知识点,可以加深对Storm源码的...
书中还介绍了与Storm拓扑相关的特有术语,以及如何在物理上查看Storm集群,并解释了流分组、故障容错和Storm中的消息确认机制。在这部分的最后,提供了关于Storm可靠元组处理和ack的XOR魔法的详细介绍。 第三部分...
- 可靠性:Storm通过ack机制保证消息处理的可靠性,源码分析应涉及Storm是如何实现这一机制的。 - 任务调度:了解Storm是如何调度工作节点上的任务,以及如何处理资源分配。 - 通信机制:分析Storm内部各组件之间...
通过学习和实践这个项目,开发者可以深入理解Storm的基本原理,包括Spout和Bolt的工作方式、拓扑结构的构建,以及如何在实际环境中部署和运行Storm应用。同时,这个项目也提供了扩展和优化实时数据处理逻辑的基础,...
- Storm设计的保证消息处理可靠性的方式。 7. TridentTopology: - 介绍TridentTopology的概念及其创建过程。 - TridentTopology的ack机制和调用关系。 8. Metrics执行流程: - 描述了如何收集和处理Storm集群...
首先,我们需要理解Kafka2Storm的基本原理。Kafka2Storm的核心在于将Kafka中的消息数据实时地引入到Storm的拓扑结构中进行处理。在Java环境下,我们通常会使用Kafka的Producer API发送数据到Kafka topic,再通过...
Apache Storm是一个开源的流处理框架,用于处理无界数据流,确保每个消息都得到精确一次的处理。在Java开发环境中,Storm通常与IntelliJ IDEA这样的集成开发环境(IDE)结合,通过Maven构建工具进行管理。 这个...
1. **消息确认机制**:Kafka的生产者无法保证消息的唯一性,而ActiveMQ提供了每条消息的ACK机制,确保了Exactly Once的消息语义。 2. **数据处理方式**:Kafka采用二进制数据格式并进行批处理,利用Page Cache提高...
- 通过Ack机制确保数据处理过程中不会丢失任何消息。 **3.3 Storm物联网WiFi项目** - **WiFi项目背景** - 实现对WiFi信号强度等数据的实时监控和分析。 - **数据处理流程** - 数据采集、数据预处理、数据计算、...
- **Ack机制**: 每个处理任务完成后,会返回一个确认(Ack)信号。如果某个任务失败,斯特罗姆会重新发送未确认的数据。 3. **编程模型**: - ** Trident**: strom-io提供的高级API,用于构建复杂的、状态管理的、...
当一个tuple被spout生成后,会经过bolt的处理,最终被ack(确认)或fail(失败)。JStorm的可靠性机制依赖于tuple的生命周期管理。 2.2 容错机制 JStorm通过acker组件实现了 tuples 的可靠传输。每个提交的拓扑都会...