PHP訊息佇列rabbitmq linux環境

2021-09-24 08:38:45 字數 2911 閱讀 4685

yum install xmlto

複製**

一.安裝環境

依賴包安裝

yum install ncurses-devel unixodbc unixodbc-devel

複製**

2.erlang環境

wget 

tar -zxvf otp_src_18.1.tar.gz

cd otp_src_18.1

./configure --prefix=/usr/local/erlang

make

make install

複製**

# 配置erlang環境變數

vim /etc/profile

# 增加內容:

export path="$path:/usr/local/erlang/bin"

# 儲存退出,並重新整理變數

source /etc/profile

# 測試erlang是否安裝成功

# 安裝完成以後,執行erl看是否能開啟eshell,用』halt().』退出,注意後面的點號,那是erlang的結束符。

[root@localhost src]# erl

erlang/otp 18 [erts-7.1] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

eshell v7.1 (abort with ^g)

複製**

安裝rabbitmq依賴檔案,安裝rabbitmq

yum install xmlto

複製**

wget 

tar zxvf rabbitmq-server-3.5.7.tar.gz

cd rabbitmq-server-3.5.7/

make

make install target_dir=/usr/local/rabbitmq sbin_dir=/usr/local/rabbitmq/sbin man_dir=/usr/local/rabbitmq/man doc_install_dir=/usr/local/rabbitmq/doc

複製**

vim /etc/hosts

# 增加一行內容

# 當前ip位址 繫結hostname名稱(vim /etc/sysconfig/network)

192.168.226.1xx localhost.localdomain

複製**

/usr/local/rabbitmq/sbin/rabbitmq-server start & 啟動rabbitmq

/usr/local/rabbitmq/sbin/rabbitmqctl status 檢視狀態

/usr/local/rabbitmq/sbin/rabbitmqctl stop 關閉rabbitmq

複製**

訪問192.168.226.1xx:15672可進入rabbit管理介面;

設定開機自啟動配置

#!/bin/sh

#start rabbitmq

sudo /usr/local/rabbitmq/sbin/rabbitmq-server & > /usr/local/rabbitmq/logs/rabbitmq.log 2>&1

複製**

rabbitmq php擴充套件安裝

yum install libtool autoconf

複製**

wget -c 

tar zxf rabbitmq-c-0.8.0.tar.gz

cd rabbitmq-c-0.8.0

./configure --prefix=/usr/local/rabbitmq-c-0.8.0

make && make install

複製**

wget -c 

tar zxf amqp-1.9.3.tgz

cd amqp-1.9.3

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.8.0

make && make install

複製**

這裡注意一下:我的是php7,所以安裝rabbitmq-c和amqp安裝的都是最新版本。網上很多教程都是基於php5的安裝,rabbitmq-c版本一般都是0.5.0,amqp是1.6.這裡注意根據你的php版本做好區分。不然在安裝amqp,make編譯的時候會錯。

vim /usr/local/php/etc/php.ini

複製**

新增一行:

extension=amqp.so

複製**

/etc/init.d/php-fpm restart

複製**

檢視是否安裝成功,輸出phpinfo()或者輸入 php -m 都可以檢視;

至此,所有的環境搭建完畢!

二.執行demo 我們把消費者的**稍微優化一下,在接受訊息的時候,只有在有訊息的時候處理:如圖

我們開啟兩個消費者程序監聽佇列,然後生產者開始投放;

執行結果如圖

可以看到,生產者投放了五個訊息,被兩個消費者依次有序的進行取出佇列處理。

PHP 實現RabbitMQ訊息佇列 二

1 安裝拓展及工具包 2 實現 a 發布訊息 host 127.0.0.1 主機 port 5672 埠 login test 賬號 password 123123 密碼 vhost test host預設為 require once vendor autoload.php usephpamqpli...

訊息佇列Rabbitmq

rabbitmq server rabbitmqctl reset rabbitmqctl stop rabbitmqctl stop rabbitmqctl list users rabbitmqctl list queues rabbitmqctl add user user name user...

訊息佇列RabbitMQ

這是乙個很嚴肅的問題。系統之間解除耦合,可以讓不同語言編寫的系統通訊互動 保證伺服器負載不會飆公升。高大上一點就是流量削峰。讓程式變成非同步,提高響應速度。把費時任務放到另乙個程序或執行緒去執行。redis實現 剛開始學習redis時,一看這個鍊錶不就是給佇列準備的嗎?所以,一心扎進去,要寫個佇列出...