美文网首页程序员Docker容器
docker搭建rabbitmq,配合php-amqplib+s

docker搭建rabbitmq,配合php-amqplib+s

作者: Steven_coder | 来源:发表于2017-06-09 18:14 被阅读0次
前言:最近有应用场景用到了rabbitmq,于是便简单的安装使用了一下,配合supervisor处理任务

rabbitmq安装

  1. 安装rabbitmq的docker容器
docker pull rabbitmq:3
  1. 开启后台守护模式
docker run -d --hostname my-rabbit --name some-rabbit rabbitmq:3
  1. 开启web管理页面
rabbitmq-plugins enable rabbitmq_management
  1. 重启docker容器
docker restart some-rabbit
  1. 查看web页面的ip地址,我的显示是172.17.0.5
docker inspect --format='{{.NetworkSettings.IPAddress}}' some-rabbit
  1. 打开rabbitmq的web管理页面,默认端口是:15672
    地址为:http://172.17.0.5:15672/#/. 如果打开后页面如下所示,则显示配置成功


    image.png

php-amqplib及使用(我用的是php框架Yii2)

  1. 使用composer安装php-amqplib,如果没有安装composer的请自己去安装,这里就不做描述了
composer require php-amqplib/php-amqplib
  1. 编写测试代码(注意172.17.0.5是我自己docker的ip,你们请填写自己的ip)
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
/**
 * Site controller
 */
class IndexController extends Controller
{
    public function actionIndex()
    {
        $connection = new AMQPStreamConnection('172.17.0.5', 5672, 'guest', 'guest');
        $channel = $connection->channel();
        $channel->queue_declare('hello', false, false, false, false);

        $msg = new AMQPMessage('Hello World!');
        $channel->basic_publish($msg, '', 'hello');

        echo " [x] Sent 'Hello World!'\n";
        $channel->close();
        $connection->close();
    }
}
  1. 打开页面检测是否成功,若果出现"Call to undefined function bcadd()" 的错误,请安装php-bcmath扩展,我的是centos系统,使用yum安装
#查找扩展版本
yum search bcmath 
#我的是php71
yum install php71w-bcmath.x86_64  
  1. 重启nginx和php-fpm(我这里php服务器用的是docker容器,所以只要重启容器就行了)
#重启我的web容器
docker restart web-dev
  1. 再重启打开页面检测,如果出现下图则表示测试成功
image.png

6.去rabbitmq的web页查看是否有队列进入,箭头指向的就是我传入的队列

image.png

结尾:rabbitmq+php-amqplib已配置完毕,关于supervisor怎么和rabbitmq和php-amqplib协同工作

PS.下篇文章地址:http://www.jianshu.com/p/9269b0deb74a

希望大家喜欢

相关文章

网友评论

    本文标题:docker搭建rabbitmq,配合php-amqplib+s

    本文链接:https://www.haomeiwen.com/subject/icnxqxtx.html