我有两个关于 JMS 的问题:
1)当队列关闭并且发布者试图发送消息时会发生什么。我会得到什么错误?
2)当消息可用但消费者不可用时会发生什么?消息会无限期地等待直到它被消耗掉吗?
我有两个关于 JMS 的问题:
1)当队列关闭并且发布者试图发送消息时会发生什么。我会得到什么错误?
2)当消息可用但消费者不可用时会发生什么?消息会无限期地等待直到它被消耗掉吗?
1) 通常,当您的代码(假设 Java)试图连接到您的 JMS 代理时,您可能会出现某种形式的(运行时)连接异常。确切的例外在很大程度上取决于您使用的任何框架(即 Spring)。您需要决定在这种情况下要做什么(即向客户端抛出异常)。如果客户端不关心消息发布的实际时间,一种选择可能是缓存要发布的消息并在一定的时间间隔内尝试它。
2)什么都没有,你的消息只会坐在队列中,直到有东西删除它。这可能是成功侦听和处理后的消费者,也可能是代理(我认为有一个名为生存时间的 JMS 属性,可以在发布时设置,这样如果不使用,消息会在该时间后消失)。