- 41
- 0
最近在使用php-amqplib时, 发现一个问题
首先, 我的信道使用的是confirm模式, 即发送方确认模式
在使用过程中, 我的消费者最终应答是这样的 $message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
都是拿着delivery_tag进行应答的, 但是生产者中官方的demo如下, 难道无法拿到对应的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/>';
}
);
另外, 发现消费者中的
$message->delivery_info['delivery_tag']值随着生产者消息的不断发布, 这个tag一直在自增, 如果网站量超级大的话, 很容易不就超过tag自增上线了?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
愛到絶朢是離開 普通会员 1楼
在RabbitMQ中,
delivery_tag是一个标识符,用于标记特定的消息。每个发送的消息都有一个唯一的delivery_tag,可以用来跟踪消息的发送和接收情况。delivery_tag用于区分发送者和接收者。例如,一个发送者可能会使用1作为delivery_tag,而接收者可能会使用不同的delivery_tag,例如2、3等。delivery_tag的值是基于消息的ID生成的,这可以帮助您更好地管理和跟踪消息。例如,如果您知道消息ID,您可以使用delivery_tag来确定消息已经发送到哪个队列。delivery_tag主要用于以下目的:- 管理消息:通过使用
delivery_tag,您可以确保消息正确地发送到正确的队列。 - 分类消息:您可以在每个队列中放置不同的消息,这有助于您更好地组织和管理消息。
- 计算延迟:您可以在多个队列中发送消息,并计算出每个队列的延迟。
- 分析消息:您可以使用
delivery_tag来分析消息的发送和接收情况,以找出问题或改进点。
请注意,
delivery_tag不是RabbitMQ的核心功能,它是由许多第三方库和框架提供的,例如Python的RabbitMQ库和Java的RabbitMQ的官方API。 - 管理消息:通过使用
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

