问题标签 [activemq-artemis]

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 投票
0 回答
2515 浏览

java - 将 wildlfy 9 连接到远程 Artemis JMS(独立)服务器

我正在尝试将 wilfly 9 连接到在不同主机上启动的远程 JMS 提供程序(Artemis MQ)。

我采用了standalone-full.xml,并进行了修改,以便我删除了所有“hornetq”的东西,并定义了我的资源适配器,如下所示:

我已经定义了一个 artemis-ra-rar,因为它用于 wildfly 10..

Wildfly 无怨无悔地开始:

但是,当我尝试部署应该使用队列的示例 Servlet 时,我收到一个错误,抱怨缺少默认的 jms 连接工厂:

有人可以向我展示一个示例,如何连接到不涉及使用 HornetQ 作为网桥的删除 JMS 服务器吗?

KR,戴维德

0 投票
3 回答
2009 浏览

spring - Spring Boot + Stomp over WS 与嵌入式 Artemis 代理“目标不存在”

我有一个使用 Spring Boot 和 Stomp over Websocket 的示例。当我将代理注册从 SimpleBrokerRegistration 更改为 StompBrokerRelayRegistration 时,它没有按预期工作。

这是我的 Websocket 配置:

和 ArtemisConfig:

然后,我使用这样的 javascript 进行连接:

它说找不到队列/topic/greetings

当我像这样使用 SimpMessagingTemplate 时:

它抛出一个错误:

我不知道为什么它不能作为 SimpleBroker 工作。

0 投票
1 回答
867 浏览

android - MQTT 客户端服务器请求响应

移动应用程序正在将它们的位置更新到服务器,并且服务器以内容响应。

是否可以使用 MQTT(Apache Artemis)将实时位置更新从移动应用程序发送到服务器。

在这种情况下,我的服务器应用程序 (PHP) 是否需要订阅主题?

服务器必须通过单个订阅通道处理所有位置更新。这可能会减慢服务器的速度吗?

流程就像 - Android 客户端定期(例如 30 秒)将用户的位置发送到服务器,PHP 服务器返回最近的用户,应用程序将它们显示在地图上。

这是我使用 MQTT 计划的架构 每个移动应用程序用户 ID 都将被视为一个主题,以便我们可以向每个用户发送响应。PHP 服务器将被视为一个主题,例如“LOCATION_TRACKER”。所有移动应用都会将位置发布到服务器主题“LOCATION_TRACKER”。服务器通过使用他们的 id 作为主题来准备列表并发布对单个用户的响应。

在这个架构中,PHP 服务器订阅主题“LOCATION_TRACKER”,实际上所有移动应用程序都发布到一个主题。考虑有数以百万计的用户如何扩展 PHP 服务器,或者有没有其他方法可以做到这一点?

该应用程序将针对至少 1000 万用户。应该支持一半的并发用户。

0 投票
1 回答
4156 浏览

wildfly - Wildfly 10 集群(域)中的 Artemis (ActiveMQ) 消息传递

有人可以提供在 Wildfly 10 集群(域)下工作的消息传递应用程序的示例吗?我们正在为此苦苦挣扎,鉴于它是一项新技术,资源严重缺乏。

目前我们有以下内容:

由两台主机(节点)和每台上的三个组组成的域,即域中的六个独立服务器。

服务器配置的相关部分(在 domain.xml 中):

配置或多或少是默认的,除了添加了TestQ队列。

tcphq栈在 JGroups 配置中定义如下:

我编写了一个由简单的“服务器”组成的测试应用程序,即 MDB 和客户端,如下所示:

服务器(MDB):

客户:

如果客户端和服务器都驻留在同一个组中,它实际上工作得很好。在这种情况下,它甚至似乎在主机(节点)之间进行通信。但是,如果服务器和客户端在不同的组中,则不会调用 MDB。此外,似乎只有当它位于偏移量为 0 的组中时才调用 MDB。当我将服务器 MDB 移动到不同的组时,即使客户端在同一组中,它也没有响应。

我对 Wildfly 10 中的 JMS 有点困惑。HornetQ 的旧版本有很多示例和材料,但对于 Artemis 来说却很少。有人可以帮忙吗?非常感谢。

0 投票
1 回答
819 浏览

spring-websocket - 集成 Spring 控制器消息映射和 Artemis

我正在研究切换到 WildFly 10,然后是 Artemis。我已经建立了一个简单的 Spring Websocket 项目,如下所述:https ://spring.io/guides/gs/messaging-stomp-websocket/ 。该项目的核心是 WebSocketConfig:

和控制器:

这就像 ActiveMQ 的魅力一样,在代理端不需要额外的配置。

知道 Artemis 需要预先创建的目的地,或者特别提到自动队列创建,我将其添加到我的 broker.xml 中:

但是,这并没有像我预期的那样工作,经纪人仍然拒绝创建/queue/greetings. 因此,我进行了更多研究,发现实际上 Artemis 喜欢队列是带有jms.queue.*前缀的名称。我将队列重命名为jms.queue.greetings并对 Spring 代码进行了以下更改: 配置:

控制器:

据我了解,这应该迫使我的控制器向该队列发送消息。Broker 喜欢这种变化并最终创建了队列,但另一方面 Spring 控制器却没有——jms.queue.greetings 中没有出现任何消​​息。

我可以通过使代码不那么漂亮来强制解决这个问题,使用一些手工注入的服务订阅所需的队列,但是这样我就会失去 Spring sockJS 的魔力——Artemis(不像 RabbitMQ)似乎没有http为 Stomp 提供端点, 连接到ws://只会导致 CORS 错误。似乎也没有内置的 CORS 支持。

对于如何克服这个问题,我将不胜感激。

编辑:我的 JS 看起来像这样:

0 投票
0 回答
60 浏览

spring - SubscribableJmsChannel 错误?

在 onMessage 事件中,如果消息没有被转换为 Spring Integration 消息,它将尝试使用 MessageBuilder 来重建它。但它不包括标题。这似乎不正确。我们使用的是 Apache Artemis 1.2 和 Spring 4.2.5。

以下是有问题的代码SubscribableJmsChannel

有时我们看到消息被转换为 Spring 消息,有时它们被尝试从 Spring 消息有效负载转换(大约 20 次中的 1 次)。在这种情况下,下面的代码似乎尝试处理重新创建 Spring 消息信封 - 但它会丢弃标头。

有趣的是,我们的代码在负载测试中总是发送完全相同的消息。我还没有弄清楚为什么这些消息会以不同的方式收到。

0 投票
1 回答
559 浏览

activemq-artemis - 如何为 Artemis MQ 地址动态配置安全性

尝试为 artemis mq 主题动态创建和提供安全元数据(而不是在 broker.xml 中静态定义它们)。
为此,我实现了(如此所述)SecuritySettingPlugin接口。现在,问题是getSecurityRoles/populateSecurityRoles仅在服务器启动时调用实现。
因此,在 mq 服务器启动后的某个时间点,将创建一个主题:

现在我希望 artemis 再次调用我的SecuritySettingPlugin实现以获取更新的安全角色(其中将包括新创建的配置newTopic)。
那可能吗 ?

PSsecurity-invalidation-interval不会使角色配置缓存失效。

0 投票
0 回答
69 浏览

hornetq - 是否可以使用 JMS API 发布消息并使用 MQTT 使用它们?

给定abcTopicArtemis(以前的 HornetQ)MQ 服务器上的主题,在内部它将由jms.topic.abcTopic地址表示。
我可以以某种方式为 MQTT 客户端订阅该主题吗?我看到的问题是,当我订阅一个主题时,它在内部变成了一个以$sys.mqtt ( org.apache.activemq.artemis.core.protocol.mqtt.MQTTUtil#MQTT_ADDRESS_PREFIX) 为前缀的地址,从而导致无法连接到jms.topic.abcTopic.

0 投票
1 回答
178 浏览

jms - 阿尔忒弥斯 1.2.0。分页不适用于 activemq(5.12.0,5.13.2) 客户端

Artemis 1.2.0 独立代理配置:

其他设置为默认设置。

tcp://localhost:61616 ” - 是“artemis”多协议接受器

正常情况:

行为:分页有效。

客户端:artemis-jms-client v1.2.0

类:org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory

错误案例:

行为:分页不起作用。当消息将队列填充到 max-size-bytes 设置时,JMX 的 Address.Paging 变为 true,创建页面文件,页面文件计数变为 1,但生产者冻结,直到消费者开始工作。日志告诉分页正在开始,所以应该没问题,但 id 没有。即使我设置了跟踪级别,也没有其他消息。

客户端:activemq-client v5.12.0(也试过最新的5.13.2,没区别)

类:org.apache.activemq.ActiveMQConnectionFactory

这是虫子还是我煮错了?

0 投票
2 回答
17738 浏览

activemq-artemis - 如何监控 ActiveMQ Artemis

我正在 Windows .NET 环境中使用 RabbitMQ、ActiveMQ "Classic" 和 ActiveMQ Artemis 进行一些测试。RabbitMQ 和 ActiveMQ “Classic” 带有一个 Web 界面,您可以在其中查看有关您的代理、队列、消息等的信息,但 ActiveMQ Artemis 没有。我真的希望能够在 Web 界面中或至少使用一些 cmd/PowerShell 命令来监控我的 ActiveMQ Artemis 代理。

我在此页面上阅读了一些可用于监视 ActiveMQ 实例的第三方工具,并且我认为它也适用于 Artemis。不幸的是,我无法让这些第三方工具正常工作。其中一些似乎在 Windows 上无法正常工作,而另一些则是旧的/不活动的。

我的客户通过 C# 中的 NMS(.NET 消息传递 API)与代理进行通信。如果有人能够监控他们的 Artemis 代理,尤其是在 Windows 机器上,请告诉我你是如何做到的!

编辑: 我现在已经设法与 Jolokia REST API 进行通信。请求GET

我可以看到有关我的队列的大量信息,例如添加和使用的消息。这是对我有帮助的好信息,但我想了解有关当前内存使用情况和磁盘使用情况的信息。