Apache storm 为什么在storm拓扑中执行和确认之间存在巨大的延迟

Apache storm 为什么在storm拓扑中执行和确认之间存在巨大的延迟,apache-storm,Apache Storm,我正在开发ApacheStorm,我发现执行和确认之间存在巨大的差异 以下是Storm UI的屏幕截图 我们该怎么做才能使ack等于executed,我试着增加打包机的数量,但这没有任何帮助。为了弄清楚,我想尝试解释这两个值的含义。Executed表示为bot调用execute方法的次数。Acked表示螺栓调用ack的次数 从上面的快照可以看出,这意味着booking_bolt执行了23300次execute方法,而只调用了500次acked 所以,在bolt的execute方法中,ack或fa

我正在开发ApacheStorm,我发现执行和确认之间存在巨大的差异

以下是Storm UI的屏幕截图


我们该怎么做才能使ack等于executed,我试着增加打包机的数量,但这没有任何帮助。

为了弄清楚,我想尝试解释这两个值的含义。Executed表示为bot调用execute方法的次数。Acked表示螺栓调用ack的次数

从上面的快照可以看出,这意味着booking_bolt执行了23300次execute方法,而只调用了500次acked


所以,在bolt的execute方法中,ack或fail并不是每次都被调用

来自Michael G.Noll training:为什么Storm UI报告的数字看起来不正确

Storm在计算统计信息时对传入的元组进行采样,以提高性能。 采样率通过topology.stats.Sample.rate配置。 0.05是默认值 在这里,Storm将选择接下来20个事件中的一个随机事件,将度量计数增加20。因此,如果你有20个任务的螺栓,你的统计数据可以关闭+/-380。 1.00迫使风暴精确计算一切

这为您提供了准确的数字,但要付出巨大的性能损失。但是,出于测试目的,这是可以接受的,并且通常非常有用