首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当消息被放入MQ (消息队列)时,生产者是否等待来自Manager的ACK?

当消息被放入MQ (消息队列)时,生产者是否等待来自Manager的ACK?
EN

Stack Overflow用户
提问于 2022-11-08 18:00:45
回答 1查看 33关注 0票数 -1

我所知道的是队列用于异步处理,但我想知道生产者是否等待来自MQ Manager的ACK来知道消息已成功地放入消息队列中,因为我在我的公司中看到了几个序列图,其中生产者将消息放入消息队列,作为返回,它得到了ACK。但是如果它等待ACK,它会不会把它变成一个同步的进程而不是异步的呢?

EN

回答 1

Stack Overflow用户

发布于 2022-11-09 02:59:52

这里的确切行为将取决于特定的客户端实现。也就是说,JMS允许持久化和非持久性消息,并且这些消息通常将分别发送阻塞/同步和非阻塞/异步消息。

明确地说,持久消息是那些应该由代理写入持久存储(例如磁盘)的消息,这样在代理关闭或崩溃的情况下,消息将存活下来,并在代理重新启动时重新加载。其思想是,持久消息因此非常重要,因此发送消息时应等待代理的响应,以确保消息按预期安全地到达代理。一般来说,这通常不被称为“ACK”。该术语通常表示客户端使用和消息时发生了什么,然后告诉代理从其内存/存储中删除消息是安全的。

当人们谈论“异步消息传递”时,他们并不是在谈论发送消息的特定阻塞语义。他们在谈论这样一个事实,即生产商与消费者完全断绝了联系。换句话说,当生产者向目的地发送消息时,它并不关心消费者收到该消息的速度或是否有任何消费者。它只是发送信息。同样,消费者在监听信息时,也不考虑生产者是如何运作的,甚至根本不考虑是否有生产者。它只是接收和确认消息,而且重要的是要注意这个确认过程只在使用者和代理之间。制片人根本没有参与这件事。

简而言之,仅仅因为组件进程的各个部分涉及阻塞操作,并不意味着整个流程不是异步的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74365242

复制
相关文章

相似问题

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