如何理解apache风暴扰乱队列的到达率

时间:2017-04-24 08:30:59

标签: apache-storm

关于风暴指标。我不明白发送队列到达率和接收队列到达率之间的关系。 例如,当打开ACK时,如果一个spout接收一个元组,它会发出一个元组。是否RQ到达率:SQ到达率= 1:2?

此外,如果系统不稳定。这个等式可能会改变吗?

1 个答案:

答案 0 :(得分:1)

Storm中的Spout实例没有接收队列(只有一个发送队列)?我假设你指的是螺栓?

尽管迈克尔·诺尔(Michael Noll)有点陈旧this article,但很好地概述了工人内部的队列。

回答你的问题。队列之间的比率不会总是2:1。破坏者队列报告他们在用户可配置topology.builtin.metrics.bucket.size.secs上平均的度量标准,因此这将模糊一些差异。此外,所有指标均受样本比率的影响,由topology.stats.sample.rate配置变量设置 - 默认情况下,该变量仅为传输元组的20%,这也可能导致报告的数字关闭。

此外,根据螺栓中的代码,1输入元组可能会产生许多输出元组,因此您必须以计算的任何比率考虑这一点。

您可以参考问题中等式的稳定性。到达率不是基于任何排队理论方程,而只是在metric.bucket期间放在队列中的元组数除以周期长度(以秒为单位)。但是,Storm会报告队列逗留时间指标。这是基于一个非常简单的排队理论方程,对于不稳定的队列系统是不可靠的,应该避免使用。