gpt4 book ai didi

java - 如何在 JMS 中接收确认

转载 作者:行者123 更新时间:2023-11-29 05:49:32 24 4
gpt4 key购买 nike

这是我的场景。该程序是使用发布者/订阅者方法开发的。在生产者和消费者部分有两个主题(topic1,topic2)。我需要从生产者程序中的消费者那里获得对接收到的主题 1 的确认,以便当确认状态为真时,生产者程序将不得不在主题 2 上发送消息。

在消费者中用谷歌搜索了建议 session.CLIENT_ACKNOWLEDGE 的链接。但我需要将确认状态返回给生产者以进行进一步处理。

最佳答案

JMS 规范没有为发布者定义任何 API 以了解消息是否被订阅者使用。发布者只是发布一条消息,它是消息传递提供者/代理,负责将该消息传递给订阅者。如果有订阅,代理将传递消息,否则该消息将被丢弃。

session.CLIENT_ACKNOWLEDGE 选项是消费者告诉消息提供者(而非生产者) 从其队列/内存中删除消息的方式之一。还有几个其他的确认选项,但所有这些选项都是为了告诉消息提供者删除消息,而不是告诉生产者。

如果生产者需要消费者的确认,那么消费者将不得不在另一个主题上发布确认消息,生产者订阅该主题以接收这些确认。例如:

制作人在 TOPIC1
上发布生产者订阅TOPIC1/ACKS
消费者订阅TOPIC1
收到消息后
消费者向 TOPIC1/ACKS
发布确认消息生产者将收到确认消息。
然后它可以在 TOPIC2 上发布

您必须注意,可以有多个确认消息,因为在 TOPIC1 上可以有多个订阅者。

关于java - 如何在 JMS 中接收确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14452674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com