【问题标题】:JMS creating topics dynamicallyJMS 动态创建主题
【发布时间】:2014-06-16 08:37:03
【问题描述】:

我正在使用 Spring 开发一个 web 应用程序,还有其他几个应用程序受到我生成的信息的影响。基本上,他们想知道我管理的数据何时发生了变化。此数据可以通过某个 A 属性进行过滤。

由于“订阅”此信息的应用程序数量是可变的,因此我考虑实现一个 JMS 发布者/订阅者模型,在该模型中,我根据过滤 A 属性创建队列,然后通知该队列的更改。然后,所有订阅者都将通过其 JMS 侦听器接收通知。

这种情况甚至可能吗?也就是说,我可以在我的 Spring webapp 中嵌入一个 JMS 队列(如何?),我可以动态创建这些队列(即我为我的 A 目录创建队列,然后如果一个新元素被添加到该目录中,一个新队列应该是无需人工干预即可动态创建)。或者有没有更好的解决方案来创建这个过滤功能?

【问题讨论】:

  • 如果我没记错的话,当您在代码中使用的任何环境中的服务器计算机上创建一组固定的队列时,您无法根据需要创建动态队列。这是上述设计的一个缺点
  • 那么你将如何实现这样的功能呢?有没有办法过滤单个 JMS 队列中的消息?

标签: java spring jms


【解决方案1】:

【讨论】:

  • 这似乎是我正在寻找的完美解决方案,我不知道选择器的存在。此归档是在服务器端(即代理不发送不符合选择器条件的消息)还是在客户端(侦听器接收所有消息然后过滤不符合选择器的消息)应用?
  • yepp,所以这样的选择器在创建监听器后不能改变
  • 对不起,我不明白你对我的问题的回答
  • 此过滤应用于代理端,因此您必须在创建侦听器时指定选择器。如果您想在运行时更改选择器 - 您必须创建另一个侦听器。
  • 对,但这是消费应用程序的问题;)无论如何,他们应该能够在运行时重新创建侦听器,不是吗?即,他们可以创建工厂并动态注册/注销 bean,而不是定义 bean
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2011-07-29
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
  • 1970-01-01
相关资源
最近更新 更多