Apache storm 在节点可以处理元组之前,ApacheStorm在哪里存储元组?

Apache storm 在节点可以处理元组之前,ApacheStorm在哪里存储元组?,apache-storm,distributed-computing,Apache Storm,Distributed Computing,我正在阅读ApacheStorm,以评估它是否适合我们的实时处理需求 有一件事我现在还不知道——当下一个节点无法处理元组时,元组存储在哪里。例如,假设喷口A以每秒1000元组的速度生产,但下一级螺栓(处理喷口A输出)只能以每秒500元组的速度集体消耗。其他元组会发生什么?它是否有一个基于磁盘的缓冲区(或其他东西)来解释这一点?通常,Storm Spoot会读取某个持久存储并跟踪元组的完成情况,以确定何时可以安全地删除或确认该存储中的消息。香草风暴本身并不存在元组。发生故障时,元组将从源中重放 我

我正在阅读ApacheStorm,以评估它是否适合我们的实时处理需求


有一件事我现在还不知道——当下一个节点无法处理元组时,元组存储在哪里。例如,假设喷口A以每秒1000元组的速度生产,但下一级螺栓(处理喷口A输出)只能以每秒500元组的速度集体消耗。其他元组会发生什么?它是否有一个基于磁盘的缓冲区(或其他东西)来解释这一点?

通常,Storm Spoot会读取某个持久存储并跟踪元组的完成情况,以确定何时可以安全地删除或确认该存储中的消息。香草风暴本身并不存在元组。发生故障时,元组将从源中重放


我不得不同意其他人的看法,你应该看看Heron。自Storm诞生以来,流处理框架取得了显著的进步。

通常,Storm会读取一些持久存储并跟踪元组的完成情况,以确定何时可以安全地删除或确认该存储中的消息。香草风暴本身并不存在元组。发生故障时,元组将从源中重放


我不得不同意其他人的看法,你应该看看Heron。自Storm诞生以来,流处理框架有了显著的进步。

Storm使用内存中的内部消息队列。因此,如果螺栓无法继续处理,则消息将在那里缓冲

在Storm 1.0.0之前,这些队列可能会超出限制(即,出现内存不足异常,工作人员死亡)。为了防止数据丢失,您需要确保喷口可以重新读取数据(请参阅)

您可以使用“max.spout.pending”参数来限制飞行中的元组,以解决此问题


从Storm 1.0.0开始,支持背压(请参阅)。这允许bolt通知其上游生产商,如果队列增长过大(并在队列变空时再次加速),则“减速”。在喷口螺栓示例中,在这种情况下,喷口会减慢速度以发出消息。

Storm使用内存中的内部消息队列。因此,如果螺栓无法继续处理,则消息将在那里缓冲

在Storm 1.0.0之前,这些队列可能会超出限制(即,出现内存不足异常,工作人员死亡)。为了防止数据丢失,您需要确保喷口可以重新读取数据(请参阅)

您可以使用“max.spout.pending”参数来限制飞行中的元组,以解决此问题


从Storm 1.0.0开始,支持背压(请参阅)。这允许bolt通知其上游生产商,如果队列增长过大(并在队列变空时再次加速),则“减速”。在喷口螺栓示例中,喷口会在这种情况下放慢速度发出信号。

你也应该考虑下一代的风暴。谢谢!Heron是开源的吗?无法通过google搜索找到git链接。那个博客是唯一的信息来源吗?它是开着的并且有一个合适的网站。谢谢!!绝对有用。那ApacheFlink(Flink.Apache.org)呢?还有其他选择。顺便说一句:暴风雨取得了巨大的进步,我不确定Heon是否仍然胜过它(可能是几年前),你也应该考虑下一代的风暴。谢谢!Heron是开源的吗?无法通过google搜索找到git链接。那个博客是唯一的信息来源吗?它是开着的并且有一个合适的网站。谢谢!!绝对有用。那ApacheFlink(Flink.Apache.org)呢?还有其他选择。顺便说一句:Storm取得了巨大的进步,我不确定Heron是否仍然优于它(可能是,几年前),那么ApacheFlink(Flink.Apache.org)呢?还有其他选择。顺便说一句:Storm取得了巨大的进步,我不确定Heron是否仍然优于它(可能是,几年前),那么ApacheFlink(Flink.Apache.org)呢?还有其他选择。顺便说一句:风暴取得了巨大的进步,我不确定苍鹭是否仍然优于它(可能是,几年前)