当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ Artemis JMS共享订阅

敖和韵
2023-03-14

我有一个单节点ActiveMQ实例,其中两个相互竞争的使用者连接到一个主题。主题订阅是根据JMS 2.0规范共享的。共享订阅确实保证只有其中一个订阅服务器(使用相同的订阅名称)获取消息。但我注意到的是,它不能保证只有在第一条消息得到确认的情况下才能传递第二条消息。如果第一个消费者需要时间来确认消息,则第二条消息甚至在消费者向代理发送第一条消息的确认之前就被传递给免费消费者。这是标准行为吗?有没有办法阻止代理在确认第一条消息之前传递第二条消息?

共有1个答案

丌官星渊
2023-03-14

ActiveMQ Artemis允许独占队列。它们是特殊队列,一次只能将所有消息路由到一个消费者。很明显,独占队列有一个后退,您无法扩展消费者以提高消费,因为从技术上讲,只有一个消费者处于活动状态。

但是,我建议查看消息分组以扩展您的解决方案。如果希望同一使用者连续处理属性的某个值的所有消息,而不停止将属性值不同的消息传递给其他使用者,则消息组非常有用。

 类似资料:
  • 本文向大家介绍system.reactive 共享一个订阅(发布),包括了system.reactive 共享一个订阅(发布)的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个IObservable<Offer>的offers从商家购买或以固定价格出售某些类型的项目,我们可以按照如下匹配对买家和卖家的: 问题在于,每个订阅trades将订阅offers两次。我们可以sellers和buyer

  • 我想为消息驱动的EJB创建一个主题上的共享、非持久订阅,并想知道如何使用@MessageDriven和@ActivationConfigProperty来实现这一点。 我发现一篇文章描述了类似的事情,但我不确定这是否适用于我的问题: 订阅的共享依赖于客户端id的设置,不仅对于持久订阅(总是需要客户端id),对于非持久订阅(通常不需要客户端id)也是如此。如果订阅是由资源适配器创建的,以供消息驱动b

  • JMS 2.0规范引入了共享持久订阅的概念。我有一个用例,我必须在服务器启动时以编程方式创建订阅。我们有集群的JBoss服务器。因此,每个JBoss都有类似的配置,每个JBoss都有将创建持久订阅者的应用程序(消息提供者是WMQ)。由于持久订阅必须有一个唯一的名称,我想到了使用共享订阅。现在的问题是Spring的4.0.6.RELEASE支持JMS 2.0中的新功能,但是我没有找到通过Spring

  • 我在开发订阅MQ主题(MQ版本9)应用程序时遇到了问题。 我需要做一个共享主题连接,因为应用程序将在多个实例(集群)中运行。 规范和文档中说:“非持久共享订阅由一个客户端使用,该客户端需要能够在多个使用者之间共享从主题订阅接收消息的工作。因此,非持久共享订阅可能有多个使用者。来自订阅的每条消息将只传递给该订阅上的一个使用者。” 对我来说,所有使用相同订阅名称的客户端都在同一个“集群”中,一次只有一

  • 库用于将相似函数打包在一个单元中。然后这些单元就可为其他开发人员所共享,并因此有了模块化编程这种说法— 即,从模块中构建程序。Linux支持两种类型的库,每一种库都有各自的优缺点。静态库包含在编译时静态绑定到一个程序的函数。动态库则不同,它是在加载应用程序时被加载的,而且它与应用程序是在运行时绑定的。 使用共享库的方法有两种:您既可以在运行时动态链接库,也可以动态加载库并在程序控制之下使用它们。本

  • 一周前,我开始建立一个WooCommerce商店,它应该可以选择在两个客户之间共享订单。这是我为您制作的一个小图表,您可以理解它应该是什么样子(请看一看): 这就是我一步一步做的 用户B单击一个按钮- 用户B单击另一个按钮- 这两个步骤(显示和隐藏用户B的订单)工作正常——我已经测试过了。字段设置和取消设置。 现在情况越来越糟: 我已经搜索了很多,并要求一些人找到WooCommerce中的功能,该