php-rabbitmq实用教程

实际项目中对”接口调用”和”view页面调用”使用mysql的方式记录日志。如果有大量用户请求操作会导致mysql负载过重,把大部分性能分给了权重不高”请求日志”记录。

demo演示步骤如下:

# 安装erlang
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm(安装erlang仓库)
yum install erlang(安装erlang)

# 安装 rabbitmq
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14-1.el6.noarch.rpm
rpm -ivh rabbitmq-server-3.7.14-1.el6.noarch.rpm
## 测试rabbitmq是否安装成功
service rabbitmq-server start #开启rabbitmq
service rabbitmq-server status #查看rabbitmq状态

# 安装扩展依赖库
wget https://github.com/alanxz/rabbitmq-c/archive/v0.8.0.tar.gz
mkdir build && cd build ( 这一步是在rabbitmq-c的根目录下创建一个build子目录)

## 这一步是让cmake根据../CMakeList.txt,即rabbitmq-c的根目录下的CMakeList.txt创建Makefile文件,Makefile文件会被创建到build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/librabbitmq ..

## 这一步是真正的build rabbitmq-c库的,注意,不要漏掉结尾的点 ‘.’
cmake –build .

## 编译安装
make
make install

# 安装amqp扩展
wget https://pecl.php.net/get/amqp-1.9.4.tgz
tar zvxf amqp-1.9.4.tgz
cd amqp-1.9.4
phpize
./configure –with-php-config=/usr/bin/php-config –with-amqp –with-librabbitmq-dir=/usr/local/librabbitmq
make
make install
## 可能出现的问题
/usr/bin/ld: cannot find -lrabbitmq
collect2: ld returned 1 exit status
make: *** [amqp.la] 错误 1
## 解决
vim Makefile
/usr/local/librabbitmq/lib 改为/usr/local/librabbitmq/lib64

重新make && make install

# 修改php.ini
extension=amqp.so #extension_dir自己定义

# 重启php-fpm(php7.0+,php5x忽略此操作)
service php-fpm restart #重启

# 通过浏览器查看
http://10.16.129.168:15672/
U:guest P:guest

 


## 问题
User can only log in via localhost
## 解决
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件)中设置
loopback_users为[]。

找到/rabbitmq_server-3.6.14/ebin下面的rabbit.app文件文件完整内容如下(注意后面的半角句号):
找到:loopback_users里的<<”guest”>>删除。

[{rabbit, [{loopback_users, []}]}].

# 重启
systemctl restart rabbitmq-server.service
搞定

发表回复

京ICP备15027918号-1