1.先安装rabbitmq-c,

wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz

tar -zxvf rabbitmq-c-0.8.0.tar.gz

cd rabbitmq-c-0.8.0

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

make && make install

2.接下来安装amqp的php扩展

cd amqp-1.9.3

phpize

./configure --with-php-config=/usr/local/php/bin/php-config

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

make && make install

3.重新php-fpm服务,查看php对应版本中是否AMQP扩展

systemctl  restart php-fpm

MQ一些基本的概念:

  • 消息生产者:就是提供消息的一方,这一方主要是面向业务或者用户的一方。
  • 消息消费者:就是接收消息并进行处理的一方,这一方一般都是在后端轮询的运行着,时刻准备接收新的消息并处理。
  • 信道(Channel):用一个形象的比喻就是,有了光纤,我们能够在光纤上进行打座机电话、看电视、上网等等,一个链接能够提供多种方式的通讯。
  • 消息队列(Message Queue):就是RabbitMQ对消息生产者生产的消息进行一定的排队从而形成队列以供消费者处理。
  • 消息队列创建者:消息队列是由消费者申请创建的,因为只有消费者知道怎么处理消息,而不是消息生产者创建的。
  • 消息路由转发:一个消费者可能会申请创建多个消息队列,那么生产者的消息应该传递到那个队列呢?这主要由Exchange来进行指定。

PHP版Demo:

消费者端: mq_server.php

function mq_server(){
set_time_limit(0);
//1.创建AMQP对象
$connnection = new \AMQPConnection(array(
'host' => 'localhost',
'posrt' => 5672,
'virtual' => '/',
'login' => "",
'password' => ""
));
$connnection->connect(); //2.创建信道channel,信道就像光纤,类似上面可以绑定个组件
$channelObj = new \AMQPChannel($connnection); //3.创建消息路由转发
$exchangeObj = new \AMQPExchange($channelObj);
$exchangeObj->setName('first');
$exchangeObj->setType(AMQP_EX_TYPE_DIRECT); //4.创建消息队列
$queueObj = new \AMQPQueue($channelObj);
$queueObj->setName('firstqueue'); //5.消息队列绑定exchange交换路由
$queueObj->bind('first','queue_route');
while(true){
$queueObj->consume(function (\AMQPEnvelope $envelope,\AMQPQueue $queue){
$msg = $envelope->getBody();
echo $msg;
$queue->ack($envelope->getDeliveryTag());
});
}
} mq_server();

生产者端:client.php

function mq_client(){
$connection = new \AMQPConnection(array(
"host" => "localhost",
"port" => 5672,
"virtual" => "/",
"login" => "",
"password" => ""
));
$connection->connect(); //创建信道channel
$channelObj = new \AMQPChannel($connection);
$exchangeObj = new \AMQPExchange($channelObj);
//信道channel
$exchangeObj->setName("first");
$exchangeObj->setType(AMQP_EX_TYPE_DIRECT); $messageBodoy = "welcome to RabbitMQ"; $exchangeObj->publish($messageBodoy,'queue_route'); $connection->disconnect();
} mq_client();

如何在Centos7安装rabbitmq的PHP扩展的更多相关文章

  1. 如何在Centos7安装swoole的PHP扩展

    1. 下载swoole源代码包 wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz 2.tar -zxvf v2.0. ...

  2. Centos7安装gearman和php扩展

    Centos7安装gearman和php扩展 标签(空格分隔): php,linux gearman所需要的依赖 yum install \ vim \ git \ gcc \ gcc-c++ \ w ...

  3. CentOS7 安装Redis和PHP-redis扩展

    aemonize yes Redis是一个key-value存储系统,属于我们常说的NoSQL.它遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的AP ...

  4. centos7安装PHP7的redis扩展

    前言: 在本篇博客中,我将给大家介绍如何在Centos7上安装PHP-Redis扩展,关于如何在Centos上安装redis的,可以参考另外一篇博客:Centos7安装redis 想要在php中操作r ...

  5. CentOS7 安装RabbitMQ

    第一.下载erlang和rabbitmq-server的rpm: http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos. ...

  6. centos7安装rabbitmq 总结

    centos7下安装rabbitmq 折腾了三天最后做了以下总结 先查看一电脑名  :示例 #hostname name 查看一下hosts配置文件:如果如下结果,就要修改下 #cat /etc/ho ...

  7. Centos7安装RabbitMQ解决Erlang依赖报错

    通过yum等软件仓库都可以直接安装RabbitMQ,但版本一般都较为保守. RabbitMQ官网提供了新版的rpm包(http://www.rabbitmq.com/download.html),但是 ...

  8. centos7 安装 rabbitmq

    主题 因为自己学习项目可能会用到rabbitmq..我又是第一次学习.以前没安装过.所以简单记录下我在centos7环境下安装rabbitmq的过程步骤,下次可以参考. 步骤 1.杂七杂八的东西 安装 ...

  9. Centos7 安装rabbitmq(转载)

    原文地址:http://blog.csdn.net/wenyu826/article/details/71108279 安装Erlang 从链接https://packages.erlang-solu ...

随机推荐

  1. flask之jinjia2模板语言

    flask_jinjia2.py ''' flask中的jinjia2模板语言(和django中模板类似): (1)模板变量{{ }} (2)模板标签{% %} ①for循环遍历 {% for foo ...

  2. HTML中id与name的通俗区别

    转自:https://blog.csdn.net/qq_35038153/article/details/70215356 https://zhidao.baidu.com/question/7582 ...

  3. 【面试考】【入门】决策树算法ID3,C4.5和CART

    关于决策树的purity的计算方法可以参考: 决策树purity/基尼系数/信息增益 Decision Trees 如果有不懂得可以私信我,我给你讲. ID3 用下面的例子来理解这个算法: 下图为我们 ...

  4. ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

    问题背景描述: 在做图片验证码识别安装 tensorflow 启动程序报错: ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' no ...

  5. MyBatis——com.mysql.cj.exceptions.InvalidConnectionAttributeException

    报错信息 Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.c ...

  6. 非常实用的织梦dede所有标签调用方法大全

    关键描述调用标签: <meta name="keywords" content="{dede:field name='keywords'/}">&l ...

  7. 微软Azure IoT驱动数字化变革线上分享会(6月4号)

    微软Azure IoT驱动数字化变革线上分享会(6月4号)   微软作为全球范围内IoT领域的领军者,以微软智能云Azure为基础和核心,推动包括物联网.机器学习.微服务.人工智能等在内的新技术的发展 ...

  8. vue-cli2 使用cdn资源

    vue-cli2 引入固定cdn资源操作记录 vue引入cdn也不是什么神奇的操作,但是自己之前一直没有尝试过,这次正好项目优化需要,所以,实操一波,特此记录 本次cnd引入了如下资源 vue vue ...

  9. 八皇后问题求解java(回溯算法)

    八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处 ...

  10. [PHP学习教程 - 文件]002.修改上传文件大小限制(File Upload Limit)

    引言:通常大家直装xampp之后,默认的文件上传大小应该被设定成2M左右,这个时候如果上传超过2M的东西,就会报错,让人非常尴尬.如何修改呢? 导航索引: 概念 FTP常用API FTP封装类 其他 ...