首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果存在超时或处理消息崩溃的应用程序,消息会发生什么情况?

如果存在超时或处理消息崩溃的应用程序,消息会发生什么情况?
EN

Stack Overflow用户
提问于 2015-12-16 16:50:02
回答 2查看 962关注 0票数 3

我目前正在阅读同步JMS for JAVA。我正在努力确认我的理解是否正确。根据我在Google中搜索的内容,我的理解是JMS同步方法,如果出现超时,消息将永远丢失。我说得对吗?

,我的问题是:,如果发生超时,或者应用程序使用基于以下示例的同步JMS方法处理消息崩溃时,消息会发生什么变化?

以同步为例,其中系统A是消息的产生者,系统B使用和处理消息

1:系统A将消息发送到队列并提交。

2:系统A连接仍然可用,等待确认

3:另一边的System将使用接收()来使用来自队列的消息

4: System使用消息并尝试保存/处理消息。

5:此时,系统B崩溃。消息回滚到队列(我是否正确地理解了这一点)

6:假设系统B是在2分钟内提出的。系统A仍在等待响应超过2分钟(假设没有超时)

7: System将再次使用来自同一个队列的消息并提交。

8:下一个系统A将收到一个确认系统B已经成功地处理了消息

EN

回答 2

Stack Overflow用户

发布于 2015-12-16 17:07:33

有一种叫做死信队列的东西,当使用者无法处理消息时,消息就会发送出去。我知道ActiveMQ有这个特性,但我不太确定它是否是JMS规范的一部分。我最近一直在使用HornetQ,它还有一个死信队列功能。

http://activemq.apache.org/message-redelivery-and-dlq-handling.html

票数 1
EN

Stack Overflow用户

发布于 2016-07-05 12:55:50

您是指同步发送或模拟在JMS上构建的请求/应答吗?

  • 如果第一种情况是这样的话,那么生产者只会等待提供者接受消息。在此之后,生产者不再关心该消息,而消费者,因为JMS提供者承担起persistence/redeliver/dead letter/etc的责任。同步发送只涉及线程,直到消息被复制到JMS。
  • 对于第二种情况,需要2队列 (requestsreplies)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34317605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档