<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                >[info] 死信隊列機制 **什么是死信隊列?**(回收站隊列) DLX - 死信隊列(dead-letter-exchange) 利用DLX,當消息在一個隊列中變成死信 (dead message) 之后,它能被重新publish到另一個Exchange中,這個Exchange就是DLX ***** **死信隊列的產生場景** * 消息被拒絕(basic.reject / basic.nack),并且requeue = false * 消息因TTL過期 * 隊列達到最大長度 ***** **死信的處理過程** DLX亦為一個普通的Exchange,它能在任何隊列上被指定,實際上就是設置某個隊列的屬性 當某隊列中有死信時,RabbitMQ會自動地將該消息重新發布到設置的Exchange,進而被路由到另一個隊列 可以監聽這個隊列中的消 息做相應的處理.該特性可以彌補RabbitMQ 3.0以前支持的immediate參數的功能 ***** **死信隊列的配置** 設置死信隊列的exchange和queue,然后進行綁定 - Exchange:dlx.exchange - Queue: dlx.queue - RoutingKey:# 正常聲明交換機、隊列、綁定,只不過我們需要在隊列加上一個參數即可arguments.put(" x-dead-letterexchange","dlx.exchange"); 這樣消息在過期、requeue、 隊列在達到最大長度時,消息就可以直接路由到死信隊列! ***** **代碼示例:dlx.php** ~~~ <?php include(__DIR__ . '/config.php'); use PhpAmqpLib\Wire\AMQPTable; use PhpAmqpLib\Message\AMQPMessage; use PhpAmqpLib\Exchange\AMQPExchangeType; use PhpAmqpLib\Connection\AMQPStreamConnection; /** * 死信隊列測試 * 1、創建兩個交換器 exchange.normal 和 exchange.dlx, 分別綁定兩個隊列 queue.normal 和 queue.dlx * 2、把 queue.normal 隊列里面的消息配置過期時間,然后通過 x-dead-letter-exchange 指定死信交換器為 exchange.dlx * 3、發送消息到 queue.normal 中,消息過期之后流入 exchange.dlx,然后路由到 queue.dlx 隊列中,進行消費 */ // todo 更改配置 //$connection = new AMQPStreamConnection('192.168.33.1', 5672, 'zhangcs', 'zhangcs', '/'); $connection = new AMQPStreamConnection(HOST, PORT, USER, PASS, VHOST); $channel = $connection->channel(); $channel->exchange_declare('exchange.dlx', AMQPExchangeType::DIRECT, false, true); $channel->exchange_declare('exchange.normal', AMQPExchangeType::FANOUT, false, true); $args = new AMQPTable(); // 消息過期方式:設置 queue.normal 隊列中的消息10s之后過期 $args->set('x-message-ttl', 10000); // 設置隊列最大長度方式: x-max-length //$args->set('x-max-length', 1); $args->set('x-dead-letter-exchange', 'exchange.dlx'); $args->set('x-dead-letter-routing-key', 'routingkey'); $channel->queue_declare('queue.normal', false, true, false, false, false, $args); $channel->queue_declare('queue.dlx', false, true, false, false); $channel->queue_bind('queue.normal', 'exchange.normal'); $channel->queue_bind('queue.dlx', 'exchange.dlx', 'routingkey'); $message = new AMQPMessage('Hello DLX Message'); $channel->basic_publish($message, 'exchange.normal', 'rk'); $channel->close(); $connection->close(); ~~~ 1. 運行代碼 ![](https://img.kancloud.cn/56/6a/566a8a3da8dd137ff80829a238c4987e_341x54.png) 2. 查看控制臺 ![](https://img.kancloud.cn/b0/a8/b0a870b170422e7266aa5e0cefdd5784_1196x279.png) 3. 10 秒后查看控制臺 ![](https://img.kancloud.cn/e3/84/e38447e93bd3e09be6dac2f8762ac237_1117x288.png) 4.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看