问题标签 [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.
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,戴维德
spring - Spring Boot + Stomp over WS 与嵌入式 Artemis 代理“目标不存在”
我有一个使用 Spring Boot 和 Stomp over Websocket 的示例。当我将代理注册从 SimpleBrokerRegistration 更改为 StompBrokerRelayRegistration 时,它没有按预期工作。
这是我的 Websocket 配置:
和 ArtemisConfig:
然后,我使用这样的 javascript 进行连接:
它说找不到队列/topic/greetings
当我像这样使用 SimpMessagingTemplate 时:
它抛出一个错误:
我不知道为什么它不能作为 SimpleBroker 工作。
android - MQTT 客户端服务器请求响应
移动应用程序正在将它们的位置更新到服务器,并且服务器以内容响应。
是否可以使用 MQTT(Apache Artemis)将实时位置更新从移动应用程序发送到服务器。
在这种情况下,我的服务器应用程序 (PHP) 是否需要订阅主题?
服务器必须通过单个订阅通道处理所有位置更新。这可能会减慢服务器的速度吗?
流程就像 - Android 客户端定期(例如 30 秒)将用户的位置发送到服务器,PHP 服务器返回最近的用户,应用程序将它们显示在地图上。
这是我使用 MQTT 计划的架构 每个移动应用程序用户 ID 都将被视为一个主题,以便我们可以向每个用户发送响应。PHP 服务器将被视为一个主题,例如“LOCATION_TRACKER”。所有移动应用都会将位置发布到服务器主题“LOCATION_TRACKER”。服务器通过使用他们的 id 作为主题来准备列表并发布对单个用户的响应。
在这个架构中,PHP 服务器订阅主题“LOCATION_TRACKER”,实际上所有移动应用程序都发布到一个主题。考虑有数以百万计的用户如何扩展 PHP 服务器,或者有没有其他方法可以做到这一点?
该应用程序将针对至少 1000 万用户。应该支持一半的并发用户。
wildfly - Wildfly 10 集群(域)中的 Artemis (ActiveMQ) 消息传递
有人可以提供在 Wildfly 10 集群(域)下工作的消息传递应用程序的示例吗?我们正在为此苦苦挣扎,鉴于它是一项新技术,资源严重缺乏。
目前我们有以下内容:
由两台主机(节点)和每台上的三个组组成的域,即域中的六个独立服务器。
服务器配置的相关部分(在 domain.xml 中):
配置或多或少是默认的,除了添加了TestQ队列。
tcphq栈在 JGroups 配置中定义如下:
我编写了一个由简单的“服务器”组成的测试应用程序,即 MDB 和客户端,如下所示:
服务器(MDB):
客户:
如果客户端和服务器都驻留在同一个组中,它实际上工作得很好。在这种情况下,它甚至似乎在主机(节点)之间进行通信。但是,如果服务器和客户端在不同的组中,则不会调用 MDB。此外,似乎只有当它位于偏移量为 0 的组中时才调用 MDB。当我将服务器 MDB 移动到不同的组时,即使客户端在同一组中,它也没有响应。
我对 Wildfly 10 中的 JMS 有点困惑。HornetQ 的旧版本有很多示例和材料,但对于 Artemis 来说却很少。有人可以帮忙吗?非常感谢。
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 看起来像这样:
spring - SubscribableJmsChannel 错误?
在 onMessage 事件中,如果消息没有被转换为 Spring Integration 消息,它将尝试使用 MessageBuilder 来重建它。但它不包括标题。这似乎不正确。我们使用的是 Apache Artemis 1.2 和 Spring 4.2.5。
以下是有问题的代码SubscribableJmsChannel
:
有时我们看到消息被转换为 Spring 消息,有时它们被尝试从 Spring 消息有效负载转换(大约 20 次中的 1 次)。在这种情况下,下面的代码似乎尝试处理重新创建 Spring 消息信封 - 但它会丢弃标头。
有趣的是,我们的代码在负载测试中总是发送完全相同的消息。我还没有弄清楚为什么这些消息会以不同的方式收到。
activemq-artemis - 如何为 Artemis MQ 地址动态配置安全性
尝试为 artemis mq 主题动态创建和提供安全元数据(而不是在 broker.xml 中静态定义它们)。
为此,我实现了(如此处所述)SecuritySettingPlugin
接口。现在,问题是getSecurityRoles/populateSecurityRoles
仅在服务器启动时调用实现。
因此,在 mq 服务器启动后的某个时间点,将创建一个主题:
现在我希望 artemis 再次调用我的SecuritySettingPlugin
实现以获取更新的安全角色(其中将包括新创建的配置newTopic
)。
那可能吗 ?
PSsecurity-invalidation-interval
不会使角色配置缓存失效。
hornetq - 是否可以使用 JMS API 发布消息并使用 MQTT 使用它们?
给定abcTopic
Artemis(以前的 HornetQ)MQ 服务器上的主题,在内部它将由jms.topic.abcTopic
地址表示。
我可以以某种方式为 MQTT 客户端订阅该主题吗?我看到的问题是,当我订阅一个主题时,它在内部变成了一个以$sys.mqtt ( org.apache.activemq.artemis.core.protocol.mqtt.MQTTUtil#MQTT_ADDRESS_PREFIX
) 为前缀的地址,从而导致无法连接到jms.topic.abcTopic
.
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
这是虫子还是我煮错了?
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
:
我可以看到有关我的队列的大量信息,例如添加和使用的消息。这是对我有帮助的好信息,但我想了解有关当前内存使用情况和磁盘使用情况的信息。