问题标签 [virtual-topic]

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 回答
1420 浏览

rabbitmq - Rabbit MQ 虚拟话题?

在 Rabbit MQ 中是否有等效于 Active MQ 虚拟主题?或任何其他机制实现队列语义。一些主题订阅者需要在他们重新上线时传递持久消息,并进行负载平衡。

编辑

有多个消费者,他们很少有丢失消息的余地,因为他们只是实时行动;很少有人不这样做,因为他们需要历史数据。

作为一个简单的例子,只要用户登录失败,就会从主应用程序发布一条消息。其中一位听众会为每次登录失败发送一封电子邮件,而另一位听众需要在一天内发生 5 次失败时发送一封电子邮件。

0 投票
1 回答
1827 浏览

java - 在 ActiveMQ 中使用具有虚拟主题的持久订阅者,订阅恢复策略是否起任何作用?

我对如何正确使用 ActiveMQ 有点困惑。

我想要做什么

我有系统 A,它为虚拟主题生成消息。然后是系统 B 和 C,它们都使用来自同一个虚拟主题的消息。系统 B 或 C 可能会脱机。所以当他们重新上线时,我需要他们接收离线期间产生的所有消息。

到目前为止我尝试过的

我已阅读有关持久订阅者的信息(http://activemq.apache.org/how-do-durable-queues-and-topics-work.html虚拟主题/队列和持久性)。这似乎符合我的问题描述,并且在做了一些实施之后,一切似乎都按照我最初想要的方式工作。

是什么造成了混乱

然后我阅读了订阅恢复政策 ( http://activemq.apache.org/subscription-recovery-policy.html )。这是我应该配置的东西还是我完全误解了一些东西?例如,如果我想存储指定数量的消息,我应该配置 aFixedCountSubscriptionRecoveryPolicy还是应该查看 some pendingMessageLimitStrategy

0 投票
2 回答
3215 浏览

activemq - 路由到 ActiveMQ 代理内的虚拟目的地

我有一个 activemq 配置,其中我有一个虚拟目的地和一个普通主题

我想根据消息头中的 JMSType 将所有 JMS 消息路由到目的地(VirtualTopic.Notifications)到 2 个队列(VirtualTopic.SMS、VirtualTopic.EMAIL)。

我希望正常的 Topic(VirtualTopic.gps) 像往常一样工作。

这是我对activemq.xml 的配置。这里创建了 Consumer.SMS.VirtualTopic 和 Consumer.EMAIL.VirtualTopic。

而消费者和主题(VirtualTopic.gps)是从服务器端代码创建的。

VirtualTopic.Notifications 的所有消息都被路由到 2 个不同的队列,消费者可以从各自的队列中获取消息

但问题是所有发送到 VirtualTopic.gps 的消息都被过滤了,消费者不能消费 gps 消息。

0 投票
2 回答
255 浏览

java - 处理 CompositeQueues 中的通配符 - ActiveMQ xml 配置文件

我想就我在 ActiveMQ 中的一个主题征求意见。

我正在使用 ActiveMQ 5.15。我正在尝试修改 xml 配置文件以使用转发到另一个队列/主题的 CompositeQueues 添加虚拟目标。在此组件的 ActiveMQ 文档中,架构如下:

我已经能够转发来自现有队列的消息,例如request.typeA.classC。但是,我有几个使用相同前缀request.typeA 的队列。因此,我的意图是使用通配符,不必为具有该前缀的每个现有队列定义复合队列,并使其更易于维护。

我需要这样的东西:

但是那段代码不起作用,我怀疑这是因为它根本不受支持(至少目前还不支持)。我已尝试在physicalName属性中成功使用通配符,但在name中没有。

  • 我的一个先决条件是我必须保留使用相同前缀的不同队列(不能将它们合并为一个)。

  • 我的另一个先决条件是我不能通过代码动态创建新的队列/主题(由于服务器权限)。这就是我对修改xml配置文件感兴趣的原因。

所以我想知道你们中是否有人知道是否可以在name属性中使用通配符(我没有在文档中阅读过任何证据),如果可以,我该怎么做。如果您确定使用当前的 ActiveMQ 版本无法做到这一点,我会感谢您确认。

我也很感激您可以为我打算的相同目的提出其他替代方案/建议,并满足我之前提到的先决条件。我还阅读了有关Mirrored Queues的信息,但是这是一个影响所有现有队列的设置(我只是对其中的一小部分感兴趣)并且可能会对性能产生相当大的影响。

非常感谢您的宝贵时间和最诚挚的问候。

0 投票
2 回答
724 浏览

activemq - 消息顺序很重要时的 AWS SNS-SQS 扇出选项

我们有我们的本地 Active-MQ,我正在探索 AWS 中用于托管消息传递服务的选项。我们所有的应用程序都使用 ActiveMQ 的虚拟主题功能。看来在 AWS 中,扇出可以使用 SNS->SQS 来实现。但遗憾的是,SNS 支持 SQS 标准队列,还不支持 FIFO 队列。当消息排序也很重要时,实现扇出案例的最佳方法是什么?

我们也可以使用 Kinesis 和 AWS ActiveMQ。但是对于 Kinesis,我无法想象如何在 Kinesis 中实现 VirtualTopic 功能。分片如何在多个主题中工作。

那么,使用 SQS-SNS 在 AWS 世界中实现 ActiveMQ 虚拟主题功能的最佳方法是什么?

0 投票
1 回答
126 浏览

jms - 是否有相当于 ActiveMQ 虚拟主题的 Solace?

有没有相当于 ActiveMQ 的虚拟主题的 Solace?

假设您有两个不同的组件,每个组件都在使用同一个 Solace 队列 - component1 和 component2。假设两者都是负载平衡的,为您提供 component1_instance1、component1_instance2、component2_instance1 和 component2_instance2。

是否可以设置 Solace,以便 Solace 队列中的每条消息都被以下人员消费:

  • 一个且只有一个来自 component1 的实例 AND
  • 来自组件 2 的一个且只有一个实例
0 投票
0 回答
124 浏览

queue - 如何从 Activemq 队列中取出消息?

我正在使用带有 MQTT 协议的 Activemq 5.14.5 ( https://activemq.apache.org/virtual-destinations ) 的虚拟主题概念。ActiveMQ 将提取写入主题的消息并将它们写入一个队列(或多个队列或主题)。请参阅下面的 ${ACTIVEMQ_HOME}/conf/activemq.xml 配置:

使用 Mqtt.fx 软件 ( https://mqttfx.jensd.de/ ) 我只能从主题 (BAR) 中出列。如何从队列 (FOO) 中出列以查看到达的消息?

我是新手,正在学习协议 MQTT 和代理 Activemq。

0 投票
1 回答
58 浏览

activemq - ActiveMQ - 如果任何队列中发生异常,则发送到多个队列的消息会卡在队列中

我正在使用虚拟目的地在 ActiveMQ 5.15.13 中实现发布订阅模型。

我有一个虚拟主题VirtualTopic,并且绑定了两个队列。每个队列都有自己的重新传递策略。假设Queue 1在处理消息时出现异常,将重试消息 2 次,Queue 2并将重试消息 3 次。发布重试消息将被发送到死信队列。

我观察到,当一条消息发送到 时VirtualTopic,它会被传递到两个队列。我面临一个问题,如果两个队列的消费者都无法成功处理消息。发往的消息Queue 1在重试 2 次后被移动到死信队列。我的期望是,Queue 2在 3 次重试后,消息会被删除。但是该消息仅向消费者重试Queue 2了 2 次,然后Queue 2作为待处理消息被卡住。

我在 activemq 代理中没有进行任何特定配置,并且以编程方式应用了重新传递策略。有没有我缺少的配置?

0 投票
1 回答
65 浏览

java - 从虚拟主题接收相同消息的多个队列仅为一个队列创建一个死信条目

我正在使用虚拟目的地在 ActiveMQ 5.15.13 中实现发布订阅模型。

我有一个虚拟主题VirtualTopic,并且绑定了两个队列。每个队列都有自己的重新传递策略。假设Queue 1在处理消息时出现异常,将重试消息 2 次,Queue 2并将重试消息 3 次。发布重试消息将被发送到死信队列。我还使用了单独的死信队列策略,以便每个队列都有自己的死信队列。

我观察到,当一条消息被发送到 时VirtualTopic,具有相同消息 ID 的消息被传递到两个队列。我面临一个问题,如果两个队列的消费者都无法成功处理消息。发往的消息Queue 1在重试 2 次后被移动到死信队列。但是没有死信队列Queue 2,虽然队列 2 中的消息被重试了 3 次。

这是预期的行为吗?

代码:

测试:

0 投票
1 回答
23 浏览

activemq - 如何在 AMQP 中向虚拟主题发布消息

我使用带有 SenderLink API 的 AMQP 将消息发布到 ActiveMQ 中的主题。我使用指向的节点地址topic://topicname

对于 VirtualTopic,我浏览了这个文档。按照说明更改配置并将主题名称重命名VirtualTopic.TopicName为不会将消息发布到队列中。

节点地址应该不同吗?我在这里错过了什么吗?