gpt4 book ai didi

java - 如何用Java确认RabbitMQ消息?

转载 作者:行者123 更新时间:2023-11-29 09:28:12 24 4
gpt4 key购买 nike

我试图弄清楚如何在 java 中确认消息,但我一直没有理解它。
这是官方的 RabbitMQ 示例:
http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/examples/ConfirmDontLoseMessages.java

问题是他们使用 10000 条消息发送到一个队列,然后他们才等待所有消息都得到确认。我需要发送 1 条消息,每个线程只发送一条消息并确认它(在我的情况下,我有几个平等的发布者必须不时发送消息)。如何确认一条消息(不是确认所有消息)?

我需要这样的东西:

for (long i = 0; i < MSG_COUNT; ++i) {
ch.basicPublish("", QUEUE_NAME,
MessageProperties.PERSISTENT_BASIC,
"nop".getBytes());
ch.wait_for_confirm();
if(ch.isConfirmed){
//OK
}
else{
//Republish
}
}

最佳答案

阅读这篇文章:

http://www.rabbitmq.com/blog/2011/02/10/introducing-publisher-confirms/

简而言之,您可以使用 tx-transactions :
ch.txSelect();
for (int i = 0; i < MSG_COUNT; ++i) {
ch.basicPublish("", QUEUE_NAME,
MessageProperties.PERSISTENT_BASIC,
"nop".getBytes());
ch.txCommit();
}

publish-confirmation处理程序:

ch.addConfirmListener(new ConfirmListener() {....}

第一个比第二个简单但慢。

关于java - 如何用Java确认RabbitMQ消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848878/

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