这是我的实现
消耗:
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/