问题标签 [amq]

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 投票
1 回答
561 浏览

java - Apache Camel - 如何在 java 中使用属性配置端点

下面是我在 XML 中完美运行的骆驼路线

现在,我想用 Java 编写一个类似的骆驼端点。你能告诉我如何在其中添加日志和节流属性吗?

0 投票
1 回答
5337 浏览

jms - 红帽 AMQ 和 Apache ActiveMQ 有什么区别?

我正在为一个新项目提供设计,并试图了解要使用哪个 JMS 提供程序。Red Hat AMQ 和 Apache ActiveMQ 之间有什么区别吗?

0 投票
1 回答
38 浏览

java - 跟踪流氓 AMQ 消息的来源

AMQ 5.7 在这里。我继承了一组非常古老的 Java 应用程序,它们使用 ActiveMQ (AMQ) 代理在彼此之间以及与该生态系统之外的客户端进行通信。因此,AMQ 代理上有数百个(!!!)队列,实际上有数百个JMS 客户端生活在数十个不同的服务器上(每个)向这些队列发布消息并使用这些队列中的消息。它是一个老鼠窝。

我有一个队列,我们​​称之为它shouldBeDead,它不应该再接收任何消息。它在某个时间点被弃用,不再向该队列发送消息。然而,它会定期受到来自某处/某处的数百条消息的轰炸。它上面没有消费者(这是正确的;我的 Java 应用程序套件不再在其代码中的任何地方使用它,因此没有任何东西在该队列上侦听以从中消耗消息)。

更复杂的是,这是一个旧的 AMQ 版本,它存在TLDR的已知 UI 错误;是:我需要将AMQ实例升级到> 5.12.x。但是,由于此问题范围之外的原因,我目前无法升级 AMQ。因此,虽然我希望浏览排队的消息并深入了解它们以获取有关它们的信息,但我什至无法在 AMQ Web UI 或应用程序日志中查看它们。shouldBeDead

我只是想弄清楚这些消息来自哪里!

进行网络分析可能很有成效,但超出了我的技能范围,这些消息在看似随机的时间涌入队列,没有任何可辨别的模式。

我希望我可以做一些 AMQ 命令行来检查队列元数据,也许可以窥探 KahaDB 或我可以做的任何其他类型的魔法来查看这些消息和/或从中获取跟踪/客户端信息.

最坏的情况我知道我可以部署一些代码更改以重新添加shouldBeDead侦听器/消费者并记录消息,但是我真的试图在不进行任何代码更改的情况下做到这一点。有什么想法/想法吗?提前致谢!

0 投票
0 回答
376 浏览

jboss - 将远程 Red Hat AMQ 7 与 Wildfly 10 一起使用

我们正在使用 Wildfly 10,我们想远程使用 Red Hat AMQ 7(独立)。我检查了一些文档,发现 ActiveMQ Artemis 也内置在 Wildfly 10 中,并且我还成功配置了它以发送和接收消息。

但是根据我们的要求,我们希望使用远程 AMQ 代理,以便它可以用作集中式服务器,并且最适合我们的企业需求。甚至我也想了解使用 Wildfly 中嵌入的 ActiveMQ Artemis 和远程 Red Hat AMQ 7 实例的确切区别,但我找不到足够的信息。如果有人对此有任何想法,请解释一下。

我认为有三种方法可以实现远程 Red Hat AMQ。

  1. 使用嵌入式 ActiveMQ Artemis 作为独立服务器。我的意思是,如果我们将这个 Wildfly 10 安装在单独的服务器中,并且我们只能将其用于集成目的,并使用嵌入式 ActiveMQ Artemis 来连接我们在单独服务器上运行的 Java 应用程序。

  2. 将 Red Hat AMQ 7.x 安装为单独的代理,并将其与部署在 Wildfly 10 上的 java 应用程序连接。我检查了 Red Hat 文档,有一点让我对这个实现感到困扰,因为 Red Hat 声称“目前仅支持 AMQ 7.2单独代理。它没有通过 EAP 7.0 或更早版本的认证。计划作为 EAP 7.1 的内部代理和作为 EAP 的外部代理进行测试。"。这是我的首选方法,但我没有得到任何文档来实现它,即使 Red Hat 也没有这样做。

  3. 安装 Apache ActiveMQ Artemis 2.x 并从 Wildfly 10 中部署的应用程序中集成它。

我试图获取这些信息,但截至目前,互联网上没有太多关于 Artemis 的信息。如果有人可以解释上述方法的优缺点差异,那将是一个很大的帮助。

问候公羊

0 投票
1 回答
58 浏览

activemq - 支持的 ActiveMQ 集成

我正在查看 ActiveMQ(特别是 Red Hat AMQ Broker)并试图找出除了支持的协议(JMS、AMQP、MQTT、OpenWire)之外还有哪些集成/连接器可用。

对于 Kafka,有例如 Confluent 中心,https: //www.confluent.io/hub/ 。ActiveMQ 有类似的东西吗?

我对阅读和撰写来自

  • 文件
  • 数据库
  • HTTP
  • 高密度文件系统

是否有任何开箱即用或现有的第 3 方支持,还是我需要实施它?

0 投票
1 回答
139 浏览

activemq-artemis - JBoss AMQ / ActiveMQ Artemis:预配置持久订阅者

我有一个 Red Hat AMQ(基于 ActiveMQ Artemis)代理,我想利用持久订阅(或等效)功能,这样我将有多个 OpenWire JMS 订阅者订阅我们应用程序的事件,这些事件将是可靠地交付给他们。

我想预先配置订阅者,以便在初始应用程序启动时省去我的麻烦。我想避免在我们的持久订阅者执行初始订阅之前主应用程序开始运行和发布事件的初始应用程序启动的情况。

我还想避免明确排序我的流程的启动顺序。

有什么方法可以预先配置持久订阅者?在普通的 ActiveMQ(不是 Artemis)中,有像 Virtual Topics 这样的特性(有点)解决了这个问题。

ActiveMQ Artemis 的首选解决方案是什么?

0 投票
2 回答
1315 浏览

amqp - ActiveMQ Artemis STOMP 接受器不接受

这是我的蓝图代码。
内部activemq:queue:x消息有效。
外部stomp:queue:y消息没有。

我在 docker 中运行 Red Hat AMQ 7 和 Fuse 7。内部消息队列在服务之间工作正常。

使用 AMQ 6,当在 activemq.xml 中设置时,我能够向 61613 上的嵌入式代理发送和接收 STOMP 消息

现在我使用 AMQ 7.0 的默认设置,它为 0.0.0.0:61616 和 61613 设置了接受器,它们都接受 STOMP 协议。

但是相同的客户端代码不再到达 AMQ 7。我正在使用 Docker 公开和映射的端口。

我将此代码用于客户端。 https://github.com/apache/activemq/tree/master/assembly/src/release/examples/stomp/java

同样,我可以作为消费者连接 AMQ 6,但不再连接 AMQ 7。

任何想法?

编辑:为贾斯汀添加信息:

阿尔忒弥斯原木

额外的客户端代码片段:

外部骆驼路线:

内部骆驼路线:

0 投票
1 回答
77 浏览

activemq - 使用 .Net 的套接字连接 ActiveMQ

我有一个任务需要在 ActiveMQ 队列和 .Net 应用程序之间建立连接。我正在为此使用 AMQP.Net Lite 插件。但是我需要在消息进入队列时调用 .Net 应用程序的接收器。是否有任何解决方案不需要.Net应用程序不时通过检查MQ队列以查看是否有任何新消息来停留?任何使用套接字的直接连接?在这种情况下我应该如何进行?

0 投票
1 回答
240 浏览

activemq-artemis - 在 ActiveMQ Artemis 中重用用户对 LDAP 的身份验证

LDAP 身份验证是在 ActiveMQ Artemis(2.6.1 -Redhat AMQ7.2) 环境中配置的,但我注意到对 LDAP 服务器的用户身份验证非常频繁。即使没有收到任何消息,似乎也在进行身份验证。

尝试增加security-invalidation-interval,但没有考虑到这一点。

我通过打开日志注意到了这种行为。

0 投票
1 回答
907 浏览

jms - ActiveMQ Artemis / RedHat AMQ 是否没有正确设置 JMS 消息 ID?

根据 JMS 规范,我在发送时不必指定消息 ID。

当我通过 hawt.io 控制台发送消息JMSProducer#send()或创建消息时,我可以看到消息 ID 被设置为由 Artemis 代理生成的某个内部序列号。

但是,当我使用MessageConsumer#receive()orMessageListener#onMessage()接收 aMessage时,Message#getJMSMessageID()总是返回null.

我可以接收具有非空 JMS 消息 ID 的消息的唯一方法是从不同的 (IBM) 消息队列中读取消息,并在发送之前将其所有属性复制到 Artemis 消息。

我已经用 AMQ 7.3.0.GA 和 Apache ActiveMQ Artemis 2.6.2 测试了这个,包括原生 (org.apache.activemq.artemis-jms-client) 和 AMQP (org.apache.qpid.qpid-jms-client ) 客户。

我必须在代理上设置一些配置以使其正确填充 JMS 消息 ID?