java - rabbitmq basic.ack ,在不同的 channel 对象上

标签 java tomcat rabbitmq mq

这是我的实现

消耗:

GetResponse resp = channel.basicGet(qName, false);

确认:

channel.basicAck(dTag, false);

channel.basicNack(dTag, false,true);

我面临的问题是,如果我创建不同的 channel 对象,则不会发生确认。 而且只有当我从同一个 jvm(tomcat 或任何其他应用服务器)执行这两项操作(消费、确认)时,我才能实现这一点。

因此,如果我的应用程序以集群模式(多个应用程序服务器)运行,我就会遇到麻烦。

任何人都可以帮助我如何从不同的机器确认消息已被消耗,即使用不同的 channel 对象。

谢谢!!

最佳答案

Can anyone please help me how can I acknowledge from a different machine the message was consumed, i.e. using a different channelobject .

你不能。

确认必须发生在同一 channel 上。

关于java - rabbitmq basic.ack ,在不同的 channel 对象上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584349/

相关文章:

java - Pane -> Hbox -> ImageView 适合高度

java - Tomcat 错误 : The origin server did not find a current representation for the target resource or is not willing to disclose that one exists

jms - openwire vs amqp,哪个性能更好

java - Tomcat JSR 356 websocket 刷新页面时出现异常

tomcat - 在浏览器选项卡中以 utf-8 打开文本文件

rabbitmq - RabbitMQ 服务器无法访问后,EasyNetQ 不会重新连接

java - 如何使用java启动服务器?

java - java框架有什么意义?

java - 如何将void语句转换为返回字符串的return语句?

java - 使用 apache 通用编解码器库在解码器上获取无效数据