storm + kafka:理解ack、fail和latency

storm + kafka: understanding ack, fail and latency

我正在使用 KafkaSpout 从 2 个 Kafka 主题中消费,每个主题都有 6 个分区。 spout 转到一个 bolt 以解压缩相关字节,然后转到第二个 bolt 进行进一步处理。

当我查看 storm-ui 时,数字没有多大意义,我希望有人能给出一些启示。

  1. Kafka spout 说它 'acked' ~3600 个元组并且失败了~73M。查看下一组中的螺栓,我发现有些螺栓已确认 ~73M,0 失败,而其他螺栓已确认 ~1.3M(无失败)。这些数字不应该以某种方式排列吗?

  2. spout 行中的 'complete latency' 约为 2500 毫秒,而螺栓的执行和处理延迟范围从 <1 毫秒到 ~50 毫秒。再次 - 通信是什么?

是 - 此拓扑有一些主要问题(请参阅 this 相关问题)。

我附上了一张 UI 的图片,希望有人能帮助我理解它。

听起来您的元组正在超时并且正在通知 spout。螺栓报告的零失败意味着螺栓没有明确地使任何元组失败,这就是为什么我认为它们一定是超时了。

根据你的其他问题,因为只有一些螺栓完成所有工作,你会遇到严重的积压,这可能是元组超时的原因。

根据您在其他问题中的评论,您可以更改为随机分组以将工作负载分散到所有螺栓,并且您可能会增加配置中的超时设置。