自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教你搭建PHP版RabbitMQ消息隊列開發(fā)環(huán)境及Demo實踐

原創(chuàng)
移動開發(fā)
面對一些響應(yīng)不及時、耗時的業(yè)務(wù)場景,我們除了可以使用多線程或者多進程的方式來處理,以提高程序的響應(yīng)速度,同時,隨著消息隊列越來越成熟,以RabbitMQ為主的高級消息隊列逐漸的走入我們程序員的世界,它也能夠勝任這些場景,今天我們就來聊聊PHP版的RabbitMQ。

【51CTO.com原創(chuàng)稿件】面對一些響應(yīng)不及時、耗時的業(yè)務(wù)場景,我們除了可以使用多線程或者多進程的方式來處理,以提高程序的響應(yīng)速度,同時,隨著消息隊列越來越成熟,以RabbitMQ為主的高級消息隊列逐漸的走入我們程序員的世界,它也能夠勝任這些場景,今天我們就來聊聊PHP版的RabbitMQ。

本機系統(tǒng)環(huán)境情況

PHP:PHP 7.1.2

web服務(wù)器:Apache

數(shù)據(jù)庫:MySQL

操作系統(tǒng):Win7 64位

安裝RabbitMQ服務(wù)端

由于RabbitMQ是基于Erlang的,所以***步需要先去安裝,而目前OS是Win7,所以打開Erlang的官方網(wǎng)站,找到對應(yīng)操作系統(tǒng)的版本下載并安裝就可以了,由于是exe文件,我們直接點下一步下一步等就能夠完成Erlang的安裝。

rab1

接下來安裝RabbitMQ,同樣打開其官方網(wǎng)站,我們也能夠看到該軟件提供了各種操作系統(tǒng)版本,我們選擇相應(yīng)的版本進行下載并安裝就可以了,這里是exe文件,所以還是只需要點擊下一步下一步等就完成了。

rab2

安裝PHP RabbitMQ擴展

首先打開php的官方擴展庫PECL網(wǎng)站,找到AMQP(高級消息隊列協(xié)議)擴展,為什么這樣呢?因為AMQP擴展是一個能夠與所有兼容AMQP協(xié)議的服務(wù)程序進行通訊,而RabbitMQ就是兼容AMQP的協(xié)議。

打開AMQP我們能夠看到,它有windows擴展(dll),但是當(dāng)下載的時候,我們發(fā)現(xiàn)有很多版本,即線程安全和非線程安全、64位和32位的版本,這個時候怎么辦呢?

rb3

rb4

不知道你是否過去從PHP官方下載PHP進行安裝的經(jīng)歷沒有,其實從官方網(wǎng)站下載PHP的時候,就有上面的上面線程安全和非線程安全等,也就是說,其實相應(yīng)的PECL擴展必須和你的PHP版本相對應(yīng),否則,你的擴展會報錯無法使用,于是我們用phpinfo就能夠看到我們目前的PHP版本的情況,找到相應(yīng)的信息就知道下載那個版本的擴展了。

rb5

原本以為到這里,我已經(jīng)徹底搞定了這個擴展的安裝,但是當(dāng)我重新啟動WEB服務(wù)器的時候,發(fā)現(xiàn)了一個致命的問題,就是WEB服務(wù)器無法正常啟動,于是又開始了各種探索,***發(fā)現(xiàn),需要將rabbitmq.4.dll文件放在PHP安裝的根目錄下面,也就是在Windows環(huán)境下面,將這個文件拷貝到與php.ini同目錄里面,而這個文件來自于上面擴展的解壓。

rb6

到這里,已經(jīng)徹底搭建完P(guān)HP版的RabbitMQ開發(fā)環(huán)境,接下來進行的一件激動人心的事情就是,進行我的MQ開發(fā)實踐之旅。

一些基本的概念

  • 消息生產(chǎn)者:就是提供消息的一方,這一方主要是面向業(yè)務(wù)或者用戶的一方。
  • 消息消費者:就是接收消息并進行處理的一方,這一方一般都是在后端輪詢的運行著,時刻準備接收新的消息并處理。
  • 信道(Channel):用一個形象的比喻就是,有了光纖,我們能夠在光纖上進行打座機電話、看電視、上網(wǎng)等等,一個鏈接能夠提供多種方式的通訊。
  • 消息隊列(Message Queue):就是RabbitMQ對消息生產(chǎn)者生產(chǎn)的消息進行一定的排隊從而形成隊列以供消費者處理。
  • 消息隊列創(chuàng)建者:消息隊列是由消費者申請創(chuàng)建的,因為只有消費者知道怎么處理消息,而不是消息生產(chǎn)者創(chuàng)建的。
  • 消息路由轉(zhuǎn)發(fā):一個消費者可能會申請創(chuàng)建多個消息隊列,那么生產(chǎn)者的消息應(yīng)該傳遞到那個隊列呢?這主要由Exchange來進行指定。

rb7

進行***個PHP版Demo

消費者端: server.php

lv8

生產(chǎn)者端:client.php

lv9

開啟RabbitMQ服務(wù)程序,并查看日志

lv10

看看上面的日志,已經(jīng)將相關(guān)的數(shù)據(jù)保存到文件里面了,成功完成我的***次RabbitMQ之旅。

歡迎留言評論,也可以加Q群討論(群號542270018)

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:何星 來源: 51CTO
相關(guān)推薦

2022-03-14 14:47:21

HarmonyOS操作系統(tǒng)鴻蒙

2021-01-13 14:00:24

鴻蒙hi3518開發(fā)

2021-02-26 11:54:38

MyBatis 插件接口

2011-03-25 12:45:49

Oracle SOA

2018-10-10 15:14:20

Linux虛擬機配置

2010-07-06 09:38:51

搭建私有云

2010-07-06 09:43:57

搭建私有云

2022-01-04 08:52:14

博客網(wǎng)站Linux 系統(tǒng)開源

2024-04-02 08:58:13

2024-03-05 18:27:43

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機

2021-07-14 09:00:00

JavaFX開發(fā)應(yīng)用

2021-08-03 11:52:49

模擬器開發(fā)嵌入式

2025-02-26 07:40:25

運營分析體系運營策略

2010-01-20 10:44:01

linux DHCP服務(wù)器

2020-09-08 07:37:44

springBoot MQ rabbitMQ

2009-06-12 18:21:46

App Engine上

2011-02-22 13:46:27

微軟SQL.NET

2021-12-28 08:38:26

Linux 中斷喚醒系統(tǒng)Linux 系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號