当前位置: 首页 > 知识库问答 >
问题:

Storm+Kafka:理解ack、失败和延迟

姜宏盛
2023-03-14

我正在使用kafkaspout从2个Kafka主题中消费,每个主题都有6个分区。喷口进入单个螺栓以解压缩相关字节,然后进入第二个螺栓以进一步处理。

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

>

  • Kafka的口水说它“收集”了3600个元组,失败了73M个元组。再看下一组的螺栓,我看到有的已经顶起了73米,有的已经顶起了1.3米(没有出现故障),而有的已经顶起了1.3米(没有出现故障)。这些数字不是应该排成一行吗?

    我正在附上一个UI的图像,希望有人能帮助我理解它。

  • 共有1个答案

    司马萧迟
    2023-03-14

    听起来你的元组超时了,喷口被通知了。为bolts报告的零失败意味着bolts没有显式地使任何元组失败,这就是为什么我认为它们一定超时了。

    根据您的另一个问题,因为只有一些bolt完成了所有的工作,所以您会得到严重的backlog,这很可能是元组超时的原因。

    根据您的另一个问题中的注释,您可以更改为shuffle grouping以将工作负载分散到所有bolts,您可能还可以增加配置中的超时设置。

     类似资料:
    • 我使用storm0.9.4和storm-kafka:0.9.0-wip16a-scala292作为从kafka0.7读取的依赖项。 我们的Kafka保留政策是7天。 我从经纪人的最新偏移量开始读取。

    • 我将Spring和Spring Kafka用于一个批处理服务,该服务从Kafka收集数据,直到满足某些条件,然后转储数据。 我想在数据离开我的服务时确认提交,但它可能会在内存中停留5-10分钟。 是否有任何其他方法来确认/提交来自Spring Kafka的偏移量,只给出分区/偏移量信息?

    • 问题内容: 我有一个应用程序可以通过TCP接收相对稀疏的流量,而没有应用程序级别的响应。我认为TCP堆栈正在发送延迟的ACK(基于对网络数据包捕获的浏览)。建议为单个套接字禁用网络堆栈中的延迟ACK的推荐方法是什么?我看过了,但看来堆栈还是会改变我的脚下。 它运行在Linux 2.6内核上,我不担心可移植性。 问题答案: 你可以以后每次执行。看来只有在发送或接收数据时才复位;如果您不发送任何数据,

    • 然而,我在激活时不断得到错误,然后监视拓扑。下面是我实现的Storm拓扑的源代码: 但是,在执行时,我不断得到的错误消息如下: 然而,通过检查工作者的日志(worker.log文件),我得出结论认为KafkaSpout在open()方法上失败。

    • 我用Kafka-Storm来连接Kafka和Storm。我有3台服务器运行zookeeper,kafka和Storm。Kafka中有一个主题“测试”,它有9个分区。 在storm拓扑中,KafkaSpout执行器的数量是9,默认情况下,任务的数量也应该是9。“提取”螺栓是唯一连接到KafkaSpout的螺栓,即“原木”喷口。 从用户界面来看,喷口的失败率很高。但是,bolt中执行的消息数=发出的消