手把手教你搭建PHP版RabbitMQ消息隊列開發環境及Demo實踐
原創【51CTO.com原創稿件】面對一些響應不及時、耗時的業務場景,我們除了可以使用多線程或者多進程的方式來處理,以提高程序的響應速度,同時,隨著消息隊列越來越成熟,以RabbitMQ為主的高級消息隊列逐漸的走入我們程序員的世界,它也能夠勝任這些場景,今天我們就來聊聊PHP版的RabbitMQ。
本機系統環境情況
PHP:PHP 7.1.2
web服務器:Apache
數據庫:MySQL
操作系統:Win7 64位
安裝RabbitMQ服務端
由于RabbitMQ是基于Erlang的,所以***步需要先去安裝,而目前OS是Win7,所以打開Erlang的官方網站,找到對應操作系統的版本下載并安裝就可以了,由于是exe文件,我們直接點下一步下一步等就能夠完成Erlang的安裝。
接下來安裝RabbitMQ,同樣打開其官方網站,我們也能夠看到該軟件提供了各種操作系統版本,我們選擇相應的版本進行下載并安裝就可以了,這里是exe文件,所以還是只需要點擊下一步下一步等就完成了。
安裝PHP RabbitMQ擴展
首先打開php的官方擴展庫PECL網站,找到AMQP(高級消息隊列協議)擴展,為什么這樣呢?因為AMQP擴展是一個能夠與所有兼容AMQP協議的服務程序進行通訊,而RabbitMQ就是兼容AMQP的協議。
打開AMQP我們能夠看到,它有windows擴展(dll),但是當下載的時候,我們發現有很多版本,即線程安全和非線程安全、64位和32位的版本,這個時候怎么辦呢?
不知道你是否過去從PHP官方下載PHP進行安裝的經歷沒有,其實從官方網站下載PHP的時候,就有上面的上面線程安全和非線程安全等,也就是說,其實相應的PECL擴展必須和你的PHP版本相對應,否則,你的擴展會報錯無法使用,于是我們用phpinfo就能夠看到我們目前的PHP版本的情況,找到相應的信息就知道下載那個版本的擴展了。
原本以為到這里,我已經徹底搞定了這個擴展的安裝,但是當我重新啟動WEB服務器的時候,發現了一個致命的問題,就是WEB服務器無法正常啟動,于是又開始了各種探索,***發現,需要將rabbitmq.4.dll文件放在PHP安裝的根目錄下面,也就是在Windows環境下面,將這個文件拷貝到與php.ini同目錄里面,而這個文件來自于上面擴展的解壓。
到這里,已經徹底搭建完PHP版的RabbitMQ開發環境,接下來進行的一件激動人心的事情就是,進行我的MQ開發實踐之旅。
一些基本的概念
- 消息生產者:就是提供消息的一方,這一方主要是面向業務或者用戶的一方。
- 消息消費者:就是接收消息并進行處理的一方,這一方一般都是在后端輪詢的運行著,時刻準備接收新的消息并處理。
- 信道(Channel):用一個形象的比喻就是,有了光纖,我們能夠在光纖上進行打座機電話、看電視、上網等等,一個鏈接能夠提供多種方式的通訊。
- 消息隊列(Message Queue):就是RabbitMQ對消息生產者生產的消息進行一定的排隊從而形成隊列以供消費者處理。
- 消息隊列創建者:消息隊列是由消費者申請創建的,因為只有消費者知道怎么處理消息,而不是消息生產者創建的。
- 消息路由轉發:一個消費者可能會申請創建多個消息隊列,那么生產者的消息應該傳遞到那個隊列呢?這主要由Exchange來進行指定。
進行***個PHP版Demo
消費者端: server.php
生產者端:client.php
開啟RabbitMQ服務程序,并查看日志
看看上面的日志,已經將相關的數據保存到文件里面了,成功完成我的***次RabbitMQ之旅。
歡迎留言評論,也可以加Q群討論(群號542270018)
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】