<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之旅 廣告
                **MQ的主要應用場景** 場景一:物聯網系統經常會遇到向終端下發命令,如果命令一段時間沒有應答,就需要設置成超時。 場景二:訂單下單之后30分鐘后,如果用戶沒有付錢,則系統自動取消訂單。 場景三:過1分鐘給新注冊會員的用戶,發送注冊郵件等。 場景四:電商ERP系統下載訂單之后,通知倉庫鎖定庫存等。 ....各種延遲場景。 我在架構分布式的應用場景的時候使用的PHP方案 RabbitMQ。MQ里頭的各種概念就不跟大家扯淡了,這個意義不大。 RabbitMQ的特性,簡介,安裝我就不說了,這個如果有需要,大家留言,我可以專門開一個文章來寫。 PHP下RabbitMQ擴展的安裝 PHP里頭要使用rabbitmq,得先安裝 amqp擴展,這個玩意兒windows的名字叫:php\_amqp.dll. 下載地址:http://pecl.php.net/package/amqp 如圖: ![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1112%2F7ef3d921j00r2gg3e008zc001eg00pyg.jpg&thumbnail=660x2147483647&quality=80&type=jpg) 這里有很多版本的,建議根據你自己的PHP版本去選擇DLL下載,看到沒,就是這個藍色小圖標的。 我自己下載的是 1.10.2 因為我的PHP版本是 7.3的 x64 nts 的。因此需要下載對應的版本: 7.3 Non Thread Safe (NTS) x64如圖: ![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1112%2Fcc20cbcbj00r2gg3f0065c001ds00ojg.jpg&thumbnail=660x2147483647&quality=80&type=jpg) 下載下來,解壓得到文件如圖: ![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1112%2F9949661fj00r2gg3g000rc000o7007cg.jpg&thumbnail=660x2147483647&quality=80&type=jpg) 這里需要注意,您需要將php\_amqp.dll放入php目錄下的 ext 擴展目錄中。這里需要注意的是,amqp和其他擴展不同,此處還有個 rabbitmq.4.dll 文件,此文件需要放在php目錄下,也就是這里:如圖 ![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1112%2Fa459ee83j00r2gg3g004sc001b400jgg.jpg&thumbnail=660x2147483647&quality=80&type=jpg) 然后在 php.ini 中添加: **extension=php\_amqp.dll** 至于加載哪里,你找個空白行加一行就行。沒啥特別要求。 注意: 這里有個坑啊,rabbitmq.4.dll 為啥要放在 php目錄下,這個是有原因的,如果你不放,當你執行命令的時候會報錯。請看圖: ![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1112%2F872195c6j00r2gg3h0010c000it00cag.jpg&thumbnail=660x2147483647&quality=80&type=jpg) 所以我這里放在了php目錄下。 當然,你也可以放在system32目錄。這里放在php目錄下可以,是因為我的環境變量解析到了這個php目錄。 這點是需要注意的,你們在網上看的別的兄弟寫的教程,可能大家沒有指出這點。 做完以上動作,至此擴展安裝完畢。就是這么簡單。 PHP里頭如何使用RabbitMQ? 別想太多,我貼代碼。你們記住死的就行,其他的直接套。 在上面我貼出來的圖里頭,擴展包里頭有個benchmark.php 文件,這個是一個測試用文件,基本上你可以把它當成例子來使用,我接下來會寫一個簡單的示例,并在示例里頭做好注釋講解,以便你更好的理解。 //這里$config 變量 是我這邊本地環境的MQ配置。你在使用的過程中,可以趙這個格式,調整成你自己的。 $config= \[ 'host'=>'192.168.10.201', 'port'=>'5672', 'vhost'=>'/', 'login'=>'admin', 'password'=>'admin', \]; //這里用try 包裹,處理異常,因為這個程序執行起來之后,是一個長時進程,所以做好錯誤處理很有必要。我這里寫的略簡單,不要照抄,最好根據各自實際情況進行處理 try{ //這里是連接MQ $conn=newAMQPConnection($config); $res=$conn->connect(); //這里是從連接里頭得到一個信道,你別管這個玩意兒是啥,你就這么寫就好,其他的先不管。以后你熟悉了再說。 $ch=newAMQPChannel($conn); //通過信道創建一個交換機,這里要注意,交換機名稱問題不大,但是type和隊列名稱需要重點注意,不要搞錯了,我這里寫的是消費者,生成者大家有興趣自行完成。 $exchange=newAMQPExchange($ch); //type是交換機類型,一般你按照我寫的這個寫,不用改 $exchange->setType(AMQP\_EX\_TYPE\_DIRECT); //這里是flag標記,你直接這么寫就好, $exchange->setFlags(AMQP\_AUTODELETE); $exchange->setName('this\_is\_exchange');//這是交換機名稱,這里你可以動態創建,也可以寫死。建議寫死。 $exchange->declareExchange();//聲明交換機, $q=newAMQPQueue($ch);//創建隊列 $q->setFlags(AMQP\_AUTODELETE);//這里是flag標記,你直接這么寫就好, $q->declareQueue();//聲明隊列 $q->setName("1SonPurchaseOrderStatus");//設置隊列名稱 $q->bind($exchange->getName());//給隊列綁定交換機。 //這個consume 就是消費消息啦, $q->consume( function($envelope,$queue) { var\_dump($envelope->getBody()); }, AMQP\_AUTOACK);$q->delete(); $exchange->delete(); $conn->disconnect(); }catch(Exception$exc) { echo$exc->getTraceAsString(); var_dump($exc->getTrace()); }finally{ $q->delete(); $exchange->delete(); $conn->disconnect(); } 以上就是一個簡單的php下使用RabbitMQ的示例。MQ的使用本身很簡單,難點在于結合實際業務。大家如果有什么問題不懂的,歡迎留言。我可以解答PHP java C# py 前端,游戲編程 等相關的問題,以及大家在平時學習工作中遇到的問題都可以說出來討論。
                  <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>

                              哎呀哎呀视频在线观看