发现 Storm ui 上的统计不是很准确. 经过一番 beidu 之后, 在 setStatsSampleRate 这里找到原因.
按我理解, storm 上 topology 每一次 emit/ack/fail tuple, 或者其他任何动作时都会调用 storm 的一些 hook. config.setStatsSampleRate()
指定了调用频率, 默认是 0.05
, 即 topology 上每发生 20 次动作才会调用 1 次 storm 的 hook, 可以理解每 emit 20 个 tuple, storm ui 上的统计才会更新.
config.setStatsSampleRate(1.0d)
对 topology 的吞吐率肯定会有影响, 但至于是多少需要根据各自的实际情况来衡量.