为什么在执行风暴拓扑与执行风暴之间存在巨大的延迟
问题描述:
我正在使用apache风暴,我发现执行和acked之间存在巨大差异。为什么在执行风暴拓扑与执行风暴之间存在巨大的延迟
以下是从风暴UI截图
,我们可以做些什么,使的ACK等于执行,我想增加包装机的数量,但是这是没有帮助的
答
使很明显,我想试着解释两个值的含义。 “执行”表示执行方法被调用的次数。 “Acked”意味着螺栓召唤有多少次。
从上面的快照中,这意味着booking_bolt执行“执行”方法23300次,并呼叫只有500次。
因此,也许在bolt的执行方法中,每次都不会调用ack或fail。
答
来自Michael G. Noll培训:为什么Storm UI会报告看起来不正确的数字?
Storm在计算统计信息时对传入的元组进行采样,以提高性能。 采样率通过topology.stats.sample.rate进行配置。 0.05是默认值 在这里,Storm会选择随后的20个事件中的一个随机事件,以将公制计数增加20点。所以如果你有20个任务用于该螺栓,你的属性可能会被+/- 380 。 1.00强制风暴来精确地计算所有东西
这会给你一个准确的数字,但是会带来大的性能损失。但为了测试目的,这是可以接受的,并且通常相当有用