我可以以某种方式覆盖消息传递中的JMS提供程序行为吗?

时间:2010-01-14 22:43:37

标签: java jms

我知道对于一些专家来说,这可能听起来很荒谬,然而,它已经存在了很长一段时间,仍然没有找到具体的答案。

PUBLISH/SUBSCRIBE MESSAGING WITH JMS TOPICS中:JMS发布者将msg发送给JMS提供者,JMS提供者将msg发送给JMS订阅者并收到他们的确认。

我是否有可能以某种方式修改JMS提供程序,以便JMS生成器只发送它从JMS发布者收到的所有其他消息?

在这个领域完全是新手,所以欢迎任何建议。

3 个答案:

答案 0 :(得分:1)

如果您想要的是订阅者能够配置为批量接收消息,其中每个订阅者可以具有不同的批量大小,则JMS将不提供此功能。这不是典型的pubsub类型场景。

如果你想完成这个,我建议你在你的订阅方添加一些自定义缓冲,它会排队收到的消息,然后在你的队列满了时进行批量通知。然后可以在每个订户的基础上轻松配置。

我所知道的唯一一个提供类似功能的消息系统是pubsub in XMPP,但即使这样,批次也是由定时间隔而不是数字决定的。

答案 1 :(得分:0)

您可以使用JMS API消息选择器查看对JMS订阅的过滤。然后,您只能读取/处理符合特定条件的消息。

有关您要完成的内容的更多信息(过滤?测试丢弃的消息?负载平衡?完全不同的其他内容?)您可能会得到更好的答案。

答案 2 :(得分:0)

你为什么要这样做?难道它不会打败整个消息传递,这不会丢失任何消息吗?或者您是否想要准确控制消息如何分发给订阅者?即使这样也违反了基本的JMS规范。