- 假设 Tibco 发送关于指定主题的消息
- 听众正在听一个主题
- 现在,我不想在指定的时间范围内向侦听器发送任何内容,而是所有属于该时间范围的消息都应该存储在 Tibco 的队列中。
是否有可能做到这一点?理想情况下,我想在 Java 中做到这一点。
当您使用术语subject
时,我假设我们正在谈论使用TIBCO Rendezvous从未知发件人向您的听众发送的消息?
TIBCO Rendezvous基于多播,在性能方面非常出色,但在可靠性和有保证的交付方面却没有那么出色。TIBCO 在产品中加入了一些技巧来克服这些缺点。在您的情况下,您可以使用 RVCM(Rendezvous Certified Messaging)将消息存储在磁盘上的分类帐文件中,直到所有侦听器都发送确认他们已收到消息 OK。例如,如果您的监听器关闭了几个小时,消息将被传递,然后监听器再次启动。
请注意,要使上述操作生效,侦听器必须在指定的时间范围内停止侦听。如果这还不够,我建议在当前发送者和侦听器之间插入一个定制组件,充当基于时间的路由器。
另请注意,另一个常见的 TIBCO 消息传递平台,TIBCO EMS将为此目的提供更好的服务(RV 分类帐文件是专有的,而 EMS 队列上的消息可以使用 JMS 访问)。
EMS 和 RV 都可以使用多种语言,包括 Java。