PHP消息隊列rabbitmq——linux環境

yum install xmlto

一.安裝環境

  1. 依賴包安裝
yum install ncurses-devel unixODBC unixODBC-devel

2.erlang環境php

wget http://erlang.org/download/otp_src_18.1.tar.gz
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)
  1. 安裝rabbitmq依賴文件,安裝rabbitmq
  • 安裝rabbitmq依賴包
yum install xmlto
  • 安裝rabbitmq服務端
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.7/rabbitmq-server-3.5.7.tar.gz
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
  • 配置hosts
vim /etc/hosts
# 增長一行內容
# 當前IP地址   綁定HOSTNAME名稱(vim /etc/sysconfig/network)
192.168.226.1xx localhost.localdomain
  • rabbitmq命令
/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管理界面;git

設置開機自啓動配置github

#!/bin/sh
#start rabbitMq
sudo /usr/local/rabbitmq/sbin/rabbitmq-server & > /usr/local/rabbitmq/logs/rabbitmq.log 2>&1
  1. RabbitMQ PHP擴展安裝
  • 安裝rabbitmq-c依賴包
yum install libtool autoconf
  • 安裝rabbitmq-c
wget -c https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
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
  • 安裝php拓展 amqp
wget -c http://pecl.php.net/get/amqp-1.9.3.tgz
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編譯的時候會錯。shell

  • 編輯php.ini文件,增長amqp擴展支持
vim /usr/local/php/etc/php.ini

添加一行:vim

extension=amqp.so
  • 重啓php-fpm
/etc/init.d/php-fpm restart

查看是否安裝成功,輸出phpinfo()或者輸入 php -m 均可以查看;dom

至此,全部的環境搭建完畢!async

二.運行demo 咱們把消費者的代碼稍微優化一下,在接受消息的時候,只有在有消息的時候處理:php-fpm

如圖測試

咱們開啓兩個消費者進程監聽隊列,而後生產者開始投放;優化

執行結果如圖

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

相關文章
相關標籤/搜索