HDInsight 风暴事件中心喷口仅接收 1024 条消息

本文关键字:1024 消息 事件 风暴 HDInsight | 更新日期: 2023-09-27 18:32:52

我有一个 HDInsight 风暴群集(默认 60 核设置(

我已经使用了模板项目,并且正在使用最新的jar依赖项(0.9。4(

昨天,我正在运行该应用程序,并通过事件中心传递了 20,000,000 条消息,没有问题。

添加新的 bolt 后(我现在从 EventHub 接收不同的 bolt(,我现在每次只收到 1024 条消息(正好(。

如果我删除拓扑并重新部署它,它曾经处理 EventHub 中的所有消息,现在它只处理 1024。

我已经删除了 azure 中的服务总线命名空间,重新创建了它,将其扩展到 10 MU,但一次只能处理 1024 条消息。

我能想到的是,这可能与接收者学分有关?

查看 github 上 Java 喷口的源代码,您可以看到以下行:

+eventhubs.checkpoint.interval = 10
+eventhubs.receiver.credits = 1024

MSDN 对 EventHubCredits 的解释是:

eventhub.receiver.credits 的值确定有多少事件 在将它们发布到 Storm 管道之前进行批处理

就好像我只收到一批。我目前正在提交 1631 条消息,不止一批,但不足以容纳两批。

[编辑]这似乎与"StormConfig.setMaxSpoutPending"设置直接相关。我之前将其设置为 100,000,从那以后这种情况一直在发生。在删除配置此内容的代码块(如下(并重新部署后,它仍然发生。但是当我重新添加代码并将 MaxSpoutPending 设置为 500 时,我现在只得到一批 500 并且没有更多......

//global config:
var topologyConfig = new StormConfig();
topologyConfig.setMaxSpoutPending(500);
topologyConfig.setNumWorkers(partitionCount);
topologyBuilder.SetTopologyConfig(topologyConfig);

[编辑2]我在 azure 中重建了整个群集,并在没有任何 StormConfig 的情况下重新部署了解决方案(我也删除了 HDFS blob 存储,因此它是全新安装。我没有删除表存储,但我认为它不用于风暴服务器(..我又回到了 1024(不是之前的 500(条消息,但没有更多。

HDInsight 风暴事件中心喷口仅接收 1024 条消息

检查螺栓是否返回确认。事件中心喷口需要确认,如果未获得确认,它将停止接收。