问题标签 [apollo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2947 浏览

apache - 从 MQTT 转换为 AMQP/STOMP

我对这些协议有点陌生,刚刚开始探索像 Apache Apollo 和 RabbitMQ 这样的消息代理。所以我的代理接收来自发布者的 MQTT 消息。我想将其转换为 AMQP(最好)或 STOMP 协议以发送到 Web 服务器。但到目前为止,我一直无法这样做。我查看了 RabbitMQ,并尝试启用 MQTT 插件,但是当我加载它时,我无法启动服务器。我想知道是否有人可以在这里指导我?有可以帮助我的 API 吗?我对 RabbitMQ 很困惑。我已经能够轻松加载其他插件,如 stomp、管理实用程序等。

0 投票
1 回答
5962 浏览

activemq - 最大 MQTT 连接数

我需要创建一个可以处理 5+ 百万个连接、5+ 百万个主题(每个客户端一个)、处理 300k 消息/秒的服务器场。

我试图查看各种消息代理的能力,因此我目前正在使用两个 RHEL EC2 实例 (r3.4xlarge) 来提供大量可用资源。所以你不需要查,它有 16vCPU,122GB RAM。我离使用限制还差得很远。

我无法通过 600k 连接限制。由于客户端和服务器上似乎都没有任何 O/S 限制(大量的 RAM/CPU/等),是什么限制了我?

我编辑了 /etc/security/limits.conf 如下:

我编辑了 /etc/sysctl.conf 如下:

对于阿波罗:导出 APOLLO_ULIMIT=20000000

对于 ActiveMQ:

我在客户端上为 eth0 创建了 20 个额外的私有地址,然后分配它们:ip addr add 11.22.33.44/24 dev eth0

我完全了解 65k 端口限制,这就是我执行上述操作的原因。

  • 对于 ActiveMQ,我得到了:574309
  • 对于阿波罗,我得到了:592891
  • 对于 Rabbit,我达到了 90k,但伐木很糟糕,尽管我知道有可能,但我不知道该怎么做才能走得更高。
  • 对于 Hive,我的试用限制为 1000。等待许可证
  • IBM 想用我房子的成本来使用它们——不!
0 投票
1 回答
321 浏览

jms - Apache Apollo MQ 中的动态目的地

有没有办法使用 Apache Apollo MQ 授权目的地?

我想要做到这一点,以便 1)用户只能写入共享主题,但将读取限制为服务器/管理员。本主题是向服务器发送消息。2)用户可以从他们自己的私有主题中读取,但除了服务器/管理员之外没有人可以写入它。

例如:

现在是有趣的部分。这必须适用于动态主题。用户的名字事先不知道。

我使用自定义 BrokerFilter 与 Apache ActiveMQ 一起工作,但不确定如何使用 Apollo。

谢谢你的帮助。

0 投票
0 回答
198 浏览

mqtt - 为什么我在重新连接到 Apache Apollo MQTT 后会丢失消息?

我已经安装了 Apollo v1.7.1 并且正在使用 Paho Go 客户端从一个连接发布并从另一个连接订阅。当我将订阅者与新的 clientid 连接,或者当我将订阅者与现有的 clientid 连接并将 clean 标志设置为 true 时,一切正常。

但是,如果我连接订阅者尝试重用带有 false 的干净标志的 clientid,则订阅者开始丢失发布者发送的大部分消息。有些消息已发送,但大多数未发送。

我可以从 html 控制台看到消息是 Apollo 从发布者那里收到的。我还可以看到它何时将消息发送给订阅者,但我无法弄清楚为什么它没有发送所有消息。

Apollo 有问题还是客户做错了什么?

0 投票
1 回答
544 浏览

java - 使用消息驱动 bean 从主题 apache apollo 获取消息

我创建了 java 应用程序,它使用消息驱动 bean(MDB) 通过 glassfish 中的资源适配器 activeMq 5.10 从主题 apache apollo 获取消息。当我使用 apache ActiveMQ 时,它可以正常工作,但不能与 apache apollo 一起使用。我使用 mqtt 发送带有主题 a 的消息,并使用 mqtt 来监听该主题并获取消息。但是当我使用 MDB 收听时,它无法收到任何消息。我看到 apollo 控制台,选项卡虚拟主机 -> 主题。我单击用于发送和接收消息的主题。该主题有消费者和生产者,“入队:2 个项目 / 2.72 kb”,但消费者“转移 = 0”。我不知道如何使用 Apollo 进行 MDB 工作。

阿波罗.xml

发布消息的代码:

多边开发银行:

0 投票
2 回答
4498 浏览

java - 为什么 MQTT 在 QoS = 1 时会如此缓慢?

我正在尝试编写一个通过 WiFi 和 MQTT 协议控制一群机器人的应用程序。我已经进行了一些测试来衡量它对于我的应用程序是否足够快。我想要一个平均不超过 25-30 毫秒的控制循环(从 PC 到机器人并返回的消息)。

我使用 Paho Java 客户端编写了一个应用程序,它在两台机器上运行。当收到关于 topic1 的消息时,它会发布到 topic2。Topic2 由第二台机器订阅,然后发布到 topic1。

当所有发布和订阅都使用 QoS 0 进行时,循环时间平均约为 12 毫秒。但是,我想使用 QoS 1 来保证发送给机器人的命令将始终到达目的地。当我测试循环时间时,它平均在 250 毫秒左右。

是什么导致时间增加这么多?据我了解,如果没有传输错误,则交换的数据包数量会随着 QoS1 翻倍(每条消息都有从代理发送到客户端的 PUBACK,请参阅http://www.hivemq.com/mqtt-essentials-part-6 -mqtt-服务质量级别/)。

我可以以某种方式减少这个时间吗?我尝试过 Mosquitto 和 Apache Apollo 代理,两者都复制了相同的结果。

编辑:

我稍微改变了一个测试程序。现在,我有两个 mqtt 客户端实例在同一台机器上运行。一是发布者,二是订阅者。发布者以 10 毫秒的间隔发送 1000 条消息,如下所示:

订阅者只是等待消息并测量时间:

Broker(具有默认配置的 mosquitto)在同一本地网络中的另一台机器上运行。我所取得的成果比以前更加离奇。现在,一条 QoS 为 1 的消息到达订阅者大约需要 8-9 毫秒。使用 QoS 2 大约为 20 毫秒。但是,使用 QoS 0,我得到平均值。时间从 100 毫秒到甚至 250 毫秒!我猜这个错误在我的测试方法中的某个地方,但我看不到在哪里。

0 投票
1 回答
60 浏览

jms - 如何将从客户端进入 Apache Apollo 的消息提供给 Java?

我是否使用称为 JMS(Java 消息传递服务)的东西?基本上,我需要以对 Java 友好的格式整理客户端发送到消息总线的所有消息,以便使用这些消息执行一些后端任务。

0 投票
1 回答
434 浏览

activemq - Apache Apollo 是否支持故障转移?

我希望将消息队列系统用于正在进行的项目,该项目现在依赖于自定义(且脆弱的)消息子系统来互连多个应用程序。pub/sub 和 queue 模式都在我的系统中大量使用。

Apache Apollo 是我正在考虑的消息队列系统之一,但我没有找到有关如何处理(例如)Apollo 服务器故障的信息。有没有办法在 Apollo 中提供故障转移支持?

0 投票
1 回答
235 浏览

c - 客户端与 mqtt 代理断开连接后释放端口

我正在使用 apollo 代理和 mosquitto C 客户端库。成功发布消息后,我使用 mosquitto_disconnect(mosq) 函数断开客户端。但看起来客户端用来连接代理的端口仍然不是空闲的。有什么方法可以手动释放客户端用于连接 ac 程序中代理的端口?

0 投票
1 回答
164 浏览

activemq - Apollo activemq AMQP NullPointerException

尝试发布 Java 对象时出现以下异常。任何指针表示赞赏。