如何在Centos7安装rabbitmq的PHP扩展
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扩展的更多相关文章
- 如何在Centos7安装swoole的PHP扩展
1. 下载swoole源代码包 wget -c https://github.com/swoole/swoole-src/archive/v2.0.8.tar.gz 2.tar -zxvf v2.0. ...
- Centos7安装gearman和php扩展
Centos7安装gearman和php扩展 标签(空格分隔): php,linux gearman所需要的依赖 yum install \ vim \ git \ gcc \ gcc-c++ \ w ...
- CentOS7 安装Redis和PHP-redis扩展
aemonize yes Redis是一个key-value存储系统,属于我们常说的NoSQL.它遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的AP ...
- centos7安装PHP7的redis扩展
前言: 在本篇博客中,我将给大家介绍如何在Centos7上安装PHP-Redis扩展,关于如何在Centos上安装redis的,可以参考另外一篇博客:Centos7安装redis 想要在php中操作r ...
- CentOS7 安装RabbitMQ
第一.下载erlang和rabbitmq-server的rpm: http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos. ...
- centos7安装rabbitmq 总结
centos7下安装rabbitmq 折腾了三天最后做了以下总结 先查看一电脑名 :示例 #hostname name 查看一下hosts配置文件:如果如下结果,就要修改下 #cat /etc/ho ...
- Centos7安装RabbitMQ解决Erlang依赖报错
通过yum等软件仓库都可以直接安装RabbitMQ,但版本一般都较为保守. RabbitMQ官网提供了新版的rpm包(http://www.rabbitmq.com/download.html),但是 ...
- centos7 安装 rabbitmq
主题 因为自己学习项目可能会用到rabbitmq..我又是第一次学习.以前没安装过.所以简单记录下我在centos7环境下安装rabbitmq的过程步骤,下次可以参考. 步骤 1.杂七杂八的东西 安装 ...
- Centos7 安装rabbitmq(转载)
原文地址:http://blog.csdn.net/wenyu826/article/details/71108279 安装Erlang 从链接https://packages.erlang-solu ...
随机推荐
- hdu6470 Count 矩阵快速幂
hdu6470 Count #include <bits/stdc++.h> using namespace std; typedef long long ll; , mod = ; st ...
- 5.8 Go 单元测试
5.8 Go 单元测试 如果你不想后半生的美好时光都在寻找BUG中度过,那么必须写些程序用来检测产品代码的结果和预期的一样. Go语言的测试依赖于go test测试命令和一组按约定方式编写的测试函数, ...
- Linux的svn服务器搭建
最近把Linux上的一些服务器学习了一遍 我这里更新一下笔记——SVN服务器 我从其他博主上学习了一下——转载https://www.cnblogs.com/mymelon/p/5483215.htm ...
- 深入理解Java虚拟机(1)
对于Java程序员,在虚拟机自动内存管理机制的帮助下,不需要再为每一个操作写配对的释放资源操作,不容易出现内存泄露和内存溢出问题.加深对Java虚拟机的理解,有助于在发现问题时精准定位问题,排 ...
- JPA EntityManager 在没有实体类的情况下返回Map
JPA entityManager.createNativeQuery()执行原生的SQL,当我们查询结果没有对应的实体类时,query.getResultList()返回的是一个List<Ob ...
- vue-cli中的index.html ,main.js , App.vue的关系
###发现不少小伙伴才刚开始接触到这个结构都被绕的迷糊,而发现很多人说的也不是那么准确,那么下面我来说一下是怎么回事### 1.首先我们来看看原生Vue中组件的写法, 我们按照vue-cli的结构按照 ...
- C#中的any和all
any是判断列表里面是否有哪怕一个: all是判断列表里面是否每一项都包含:
- eatwhatApp开发实战(十四)
之前我们就输入框EditText做了优化,而这次,我们为app添加拨打电话的功能. 首先是布局,将activity_shop_info.xml中对应的电话那一栏进行重新设计: <Relative ...
- [PHP学习教程 - 网络]001.下载/采集远程文件到本地(Download File)
引言:如何把http://mzitu.com里的图片全部下载下来呢? 一身浩然正气的AC陷入的深思.... 当然这里涉及到的功能有线程,网页请求,页面提取,下载图片等等.今天,我们先讲一下如何下载文件 ...
- CELF算法原理
影响力传播模型中的独立层叠模型(independent cascading model,IC模型),影响力传播过程中,种子的影响力具备子模性(submodularity),即种子的边际影响力增量会呈现 ...