发送大量发布消息:正在进行中的发布过多错误

2023-11-30

这是泛美卫生组织异步客户端:

    client = new MqttAsyncClient(appProps.getProperty("mqtt.broker"),
            appProps.getProperty("mqtt.clientId"), new MemoryPersistence());
    client.setCallback(this);
    client.connect(null, new IMqttActionListener() {
        @Override
        public void onSuccess(IMqttToken imt) {
            try {
                client.subscribe(Constants.internalTopics, Constants.internalTopicQOS);
            } catch (MqttException ex) {
                ex.printStackTrace();
            }
        }

        @Override
        public void onFailure(IMqttToken imt, Throwable thrwbl) {
            thrwbl.printStackTrace();
        }
    });

这里我循环发送消息:

        while (iterator.hasNext()) {
            try {
               client.publish("user/" + userId + "/downstream", mqttMessage);
            } catch(Exception ex) {
                ex.printStackTrace();
            }
        }

Error:

Too many publishes in progress (32202)
    at org.eclipse.paho.client.mqttv3.internal.ClientState.send(ClientState.java:436)
    at org.eclipse.paho.client.mqttv3.internal.ClientComms.internalSend(ClientComms.java:121)
    at org.eclipse.paho.client.mqttv3.internal.ClientComms.sendNoWait(ClientComms.java:139)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:858)
    at org.eclipse.paho.client.mqttv3.MqttAsyncClient.publish(MqttAsyncClient.java:836)

我在用Rabbitmq


看着source对于 Paho 客户端,任何给定时间的默认最大飞行消息数似乎都是 10。

因此,考虑到您的发布循环有多紧,网络层的速度只会稍微减慢,并且在任何给定时间发送的过程中最终都会有超过 10 条消息。如果您尝试以大于 0 的 QOS 发送,情况只会变得更糟。

您可以使用以下命令更改默认值setMaxInflight(int n)方法上的MQTTConnectionsOptions传递给的对象client.connect() method.

我建议你尝试找到一个合适的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送大量发布消息:正在进行中的发布过多错误 的相关文章

  • 如何从 MQTT 生产并在 ActiveMQ 中作为 MQTT 和 JMS 消费

    我有一个设置 其中消息作为 MQTT 生成到 ActiveMQ 我有两个消费者 一个作为 JMS 另一个作为 MQTT 当我将消息作为 JMS 消息发布到主题 foo 时 我在 JMS 和 MQTT 消费者处都收到消息 但是当我在同一主题上
  • MongoDB 架构设计 - 实时聊天

    我正在启动一个项目 我认为该项目特别适合 MongoDB 因为它提供的速度和可扩展性 我目前感兴趣的模块是与实时聊天有关的 如果我要在传统的 RDBMS 中执行此操作 我会将其分为 频道 一个频道有很多用户 用户 一个用户有一个频道但有多条
  • 如何在多租户系统中的 RabbitMQ 中使队列私有/安全?

    我已阅读开始使用 http www rabbitmq com getstarted htmlRabbitMQ 提供的指南 甚至还贡献了第六个示例暴风雨 amqp https github com paolo losi stormed amq
  • 多个队列在一个通道中消耗

    我使用rabbitMq 来管理和使用队列 我有多个队列 它们的数量并不具体 我使用直接交换来发布消息 我怎样才能仅使用一个队列来消费每个队列的所有消息 基于routing key 渠道 此时我假设我有 5 个队列 我使用了 for 循环并为
  • 定义具有多种消息类型的消息传递域

    到目前为止 我见过的大多数 F 消息传递示例都使用 2 4 种消息类型 并且能够利用模式匹配将每条消息定向到其正确的处理函数 对于我的应用程序 由于处理和所需参数的不同性质 我需要数百种独特的消息类型 到目前为止 每个消息类型都是其自己的记
  • 如何重置rabbitmq管理用户

    使用rabbitmq 我们可以安装管理插件 然后我们通过浏览器访问http localhost 55672 使用访客 访客 问题是 我无法再登录 因为我更改了密码并为角色输入了空白 有没有办法重置rabbitmq管理的用户 您可以通过以下方
  • Amazon EC2 实例上和本地的 RabbitMQ?

    是否可以设置一个RabbitMQ服务器上的Amazon EC2 instance 并将我办公室的机器连接到此RabbitMQ服务器并向其发送 接收消息 我会被收取费用吗Amazon对于流入 流出我的带宽 消息RabbitMQ EC2 ins
  • 面向服务的架构 - AMQP 或 HTTP

    一点背景 非常大的整体 Django 应用程序 所有组件都使用相同的数据库 我们需要分离服务 以便我们可以独立升级系统的某些部分而不影响其余部分 我们使用 RabbitMQ 作为 Celery 的代理 现在我们有两个选择 使用 REST 接
  • 生产者/消费者的不同语言

    我想知道是否可以通过 AMQP 和 RabbitMQ 对生产者和消费者使用不同的语言 例如 Java 代表生产者 python php 代表消费者 或者反之亦然 是的 AMQP 与语言无关 这意味着只要您有可以连接到 AMQP 的客户端sa
  • RabbitMQ - 无法联系统计数据库。消息速率和队列长度将不会显示

    我已经设置了一个兔子经纪人集群 并且在管理门户插件中我收到以下消息 无法联系统计数据库 消息速率和队列长度将不会显示 我已经搜索过这个错误 但谷歌并不友善 任何人都可以阐明这一点吗 我最近在旧安装的RabbitMQ 2 8 7 上遇到了同样
  • Rabbit mq - 等待 Mnesia 表时出错

    我已经在 Kubernetes 集群上使用 Helm Chart 安装了 RabbitMQ rabbitmq pod不断重新启动 在检查 pod 日志时 我收到以下错误 2020 02 26 04 42 31 582 warning lt
  • 在文件之间共享 mqtt 客户端对象

    我这样连接到 MQTT mqtt js const mqtt require mqtt var options needed options var client mqtt connect mqtt someURL options clie
  • rabbitmq 的 REST API

    有没有办法从 ajax 向 RabbitMQ 发送数据 我的应用程序由数千个 Web 客户端 用 js 编写 和 WCF REST 服务组成 现在我试图弄清楚如何为我的应用程序创建可扩展点 这个想法是有一个rabbitmq实例 它从放置在一
  • OPC UA 协议与 MQTT 协议

    我想根据两种协议的一般特征 例如开销 数据包 安全性 信息建模和可靠性 来比较 OPC UA 与 MQTT 我在哪里可以找到每个协议的开销和其他特征的一些示例数据 以便我对它们进行比较 我需要你的建议 您可以推荐任何工具来比较这些协议 MQ
  • 启动时加载 RabbitMQ 配置

    如何在启动时加载 RabbitMQ 配置以确认已创建代理对象 队列 交换 绑定 用户 虚拟主机 权限和参数 根据 RabbitMQ 文档 可以通过以下方式完成load definitions http www rabbitmq com ma
  • 如何停止本地主机上的 RabbitMQ 服务器

    我在 OS X 上安装了 RabbitMQ 服务器 并在命令行上启动它 现在 我应该如何阻止它运行还不清楚 我这样做之后 sudo rabbitmq server detached I get Activating RabbitMQ plu
  • RabbitMQ HTTP API 请求 401 未经授权

    我正在尝试访问 RabbitMQ Rest 但收到 401 未经授权的错误 我想访问队列信息并获取消息编号 我发现这是一个解决方案 DefaultHttpClient httpClient new DefaultHttpClient Htt
  • 如何停止rabbitmq服务器

    我正在尝试启动一个节点应用程序 但我认为rabbitmq 妨碍了我 与此线程类似 名为 rabbit 的节点已经在运行 但也 无法连接到节点 rabbit https stackoverflow com questions 8737754
  • 当代理关闭并启动时,Node JS mqtt 客户端未收到订阅的消息

    我创建了一个 mqtt Node js 客户端 我的连接选项如下 mqttOptions clientId 100 keepAlive 1000 clean false reconnectPeriod 1000 will willMessa
  • 使用 Celery 时出现错误消息“无法找到记录器“多处理”的处理程序”

    RabbitMQ http en wikipedia org wiki RabbitMQ现在似乎工作正常 然而 当我尝试 python m celery bin celeryd loglevel INFO 常规的celeryd不起作用 我收

随机推荐

  • 无法在android中的graph api中获取性别

    我无法在这里获取性别OnCompleted功能 我可以获得其他参数 例如id name email 目前应用程序处于开发模式 这是昨天工作的 Code GraphRequest request GraphRequest newMeReque
  • 使用“ADODB.Stream”将ANSI转换为UTF-8,第一行丢失1-2个字符

    我需要将 ANSI csv 文件转换为 UTF 8 csv 文件 下面的代码可以工作 但第一个字符丢失 请参阅随附的屏幕截图 原始文件 客户 输出文件 客户 Function Convert myFileIn myFileOut Dim s
  • JavaScript this 来自 jQuery this

    有没有办法从 jQuery this 获取 JavaScript this this this 任何this is this不是 jquery 而是一个特殊的 有些复杂的 javascript 关键字 用于描述当前的执行范围 您的挑战可能是
  • 无法识别 Visual Studio 代码任务构建“C:\Program”

    因此 我使用 Visual Studio Code 来构建并运行一个简单的 C 程序 我使用tasks json来处理编译 基于此 如何使用 VS Code 和 cl 编译 C 代码 See https go microsoft com f
  • Pymssql 是否可以与 MS SQL Server 建立安全连接 (SSL)?

    我正在使用 Python 代码 Pymssql 库 从 MS SQL 服务器进行查询 但是我想知道是否有任何方法可以使连接安全并加密从服务器发送到 python 的数据 Thanks 是的 它可以 您需要通过 OpenSSL 支持 SSL
  • boost:thread - 编译器错误

    我想在程序中使用 boost thread 但出现以下编译器错误 Visual Studio 2005 Error 1 error C2064 term does not evaluate to a function taking 0 ar
  • 将一个方阵中的 NA 添加并将其放入另一个方阵中

    我想知道是否可以选择NA列和NA行从d1方阵并将它们放入d2方阵来实现我的DESIRED d3方阵 这是一个玩具示例 并且d1 and d2方阵可以是任意维数 这样就实现了类似的功能NA替换品表示赞赏 m1 a1 a2 a3 a4 a5 a
  • 如何清除游戏中心实时排行榜数据?

    是否可以清除实时游戏中心排行榜 而不是沙盒排行榜 的数据 如果无法清除 是否有办法隐藏排行榜不显示 谢谢 转到 iTunesConnect 中的排行榜 并将分数范围更改为超出范围的值 例如 我的一些高尔夫球手发布的成绩远远低于标准杆 我将范
  • 在 Mac OS X 10.10 上以 64 位模式执行 python

    我正在尝试在 64 位模式下执行 python 从这篇文章 如何在 Mac OS X 上强制使用 64 位 python 我检查了 python 都有 32 64 位二进制 gt lipo info which python gt Arch
  • 在 ruby​​ gpgme 中使用密码回调

    我正在使用 ruby gpgme gem 1 0 8 我的密码回调未被调用 def passfunc args fd args last io IO for fd fd w io puts mypassphrase io flush end
  • 回发后在 TextBox 中设置焦点

    我有一个简单的页面 我想根据文本框中的值过滤列表框 两者都在 UpdatePanel 中 这可以正常工作 但是 在回发后 文本框失去了焦点 所以我将焦点设置回 page load 中 然后我注意到光标现在位于文本的开头 而我希望它位于末尾
  • 使用selenium Python滚动到无限加载页面的末尾

    我正在使用 Selenium 从 Twitter 上抓取关注者姓名 并且该页面是无限的 每当我向下滚动时 我都可以看到新的关注者 不知何故 我想转到页面底部 以便我可以scrape所有的追随者 while number 5 driver e
  • 如何在 SML/NJ 中进行按位与运算?

    我正在编写的程序需要它 重复平方来计算 x n 我似乎找不到它的语法 或者是否支持它 它们可在Word8 and Word结构 let open Word8 infix andb orb xorb notb lt lt gt gt gt g
  • async wait 任务空引用异常

    I am getting NullReferenceExceptions on a webforms project I m maintaining The catch is that there is no stacktrace for
  • 解析命令调用的输出

    因此 我尝试从 python 执行 shell 命令 然后将其存储在数组中或直接解析管道 shell 命令 我通过 subprocess 命令管道传输 shell 数据 并使用 print 语句验证输出 它工作得很好 a subproces
  • 单击/激活 jQuery UI 选项卡时触发函数?

    我正在使用 jQuery 选项卡 其中一个选项卡中的内容是通过 AJAX 调用检索的 但我不想在单击选项卡 激活 之前触发调用 因为用户可能不一定单击它 最好的方法是什么 jQuery UI 提供select and show选项卡的事件
  • 默认情况下,Java 类会隐式扩展 java.lang.Object [重复]

    这个问题在这里已经有答案了 在本教程中 http www studytonight com java object and classes 我读到java 类可以选择扩展一个父类 默认情况下 它将扩展 java lang Object No
  • 如何在 MATLAB 中使用线性索引为 4-D 矩阵的对角线赋值?

    我有一个 4 维矩阵A尺寸的NxNxPxQ 如何轻松地将每个对角线值更改为 1NxN矢量化方式的二维子矩阵 结合 gnovice 的建议 对元素进行索引的一种简单方法是 N P Q size A get dimensions of your
  • 在下载过程中使用 swingworker 更新 JProgressBar

    问题解决了 非常感谢 Trashgod 和 HoverCraftFullOfEels 我终于通过使用下面的示例并稍微改变它得到了这个概念 更改允许缩放进度条 默认为 100 个单位 再次感谢您的耐心和愿意解决这个问题 意味着很多人 凯特 p
  • 发送大量发布消息:正在进行中的发布过多错误

    这是泛美卫生组织异步客户端 client new MqttAsyncClient appProps getProperty mqtt broker appProps getProperty mqtt clientId new MemoryP