鍍金池/ 問答/Java  PHP/ rabbitmq中的delivery_tag誰了解?

rabbitmq中的delivery_tag誰了解?

最近在使用php-amqplib時(shí), 發(fā)現(xiàn)一個(gè)問題
首先, 我的信道使用的是confirm模式, 即發(fā)送方確認(rèn)模式
在使用過程中, 我的消費(fèi)者最終應(yīng)答是這樣的
$message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
都是拿著delivery_tag進(jìn)行應(yīng)答的, 但是生產(chǎn)者中官方的demo如下, 難道無法拿到對(duì)應(yīng)的delivery_tag么?

$channel->set_ack_handler(
    function (AMQPMessage $message) {
        var_Dump($message->delivery_info);
        echo "Message acked with content " . $message->body . PHP_EOL;
        echo '<br/>';
    }
);

另外, 發(fā)現(xiàn)消費(fèi)者中的
$message->delivery_info['delivery_tag']值隨著生產(chǎn)者消息的不斷發(fā)布, 這個(gè)tag一直在自增, 如果網(wǎng)站量超級(jí)大的話, 很容易不就超過tag自增上線了?

回答
編輯回答
墨沫

這個(gè) set_ack_handler 對(duì)應(yīng)的 confirm 模式是 producer 和 rabbitmq 之間的的 confirm,不是指 producer 和 consumer

通過 $channel->confirm_select();$channel->wait_for_pending_acks(); 指定,具體可以搜搜對(duì)應(yīng)的文檔,例如 這篇 https://www.zybuluo.com/dume2...

2018年6月13日 12:08