centos 安装和配置 rabbitmq

摘要:
˃2.获取队列信息:connect();//设置queue名称,使用exchange,绑定routingkey$channel=newAMQPChannel;$q=newAMQPQueue;$q-˃setName;$q-˃setFlags;$q-˃declare();$q-˃bind;//消息获取$messages=$q-

centos 安装 rabbitmq

1、rabbitmq是erlang语言开发的,安装前首先需要安装erlang
# yum install erlang -y // 直接安装可能报错,
# yum install ncurses-devel // 安装依赖
官方下载erlang包
# wget http://erlang.org/download/otp_src_19.0.tar.gz
解压安装erlang
# tar xzvf otp_src_19.0.tar.gz
# cd otp_src_19.0
# ./configure
# make && make install
安装完毕后测试运行一下:
#erl
1>1+2.
3
2>halt(). // 退出

2、安装rabbitmq,yum安装
# rpm -Uvh http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
# yum install rabbitmq-server -y

官方下载: wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5.zip
解压安装
# tar xzvf rabbitmq-server-3.6.5.zip
# cd rabbitmq-server-3.6.5
# make
# make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install

3、安装完成后需要配置:
/usr/local/rabbitmq/sbin目录下文件说明:
rabbitmq-env // 环境配置
rabbitmq-defaults // 默认参数设置
rabbitmqctl // 管理工具
rabbitmq-plugins // 插件管理工具
rabbitmq-server // rabbitmq服务

3.1、添加自定义配置文件
RABBITMQ_NODE_IP_ADDRESS=192.168.2.2 // 自定义地址
RABBITMQ_NODE_PORT=3333 // 自定义端口号

3.2、启动:
# rabbitmq-server -detached

报错:ERROR: epmd error for host "bogon": timeout (timed out)
修改/etc/hosts
127.0.0.1 bogon
重启即可。

3.3、启用rabbitmq web管理插件,安装sbin目录下:
./rabbitmq-plugins enable rabbitmq_management
然后重启rabbitmq-server
登录web管理页面
http://192.168.2.2:15672
登录用户:guest/guest

3.4、列出所有插件
# ./rabbitmq-plugins list

3.5、安装php的rabbitmq扩展:
# yum install librabbitmq-devel.x86_64 -y
# wget http://pecl.php.net/get/amqp-1.7.1.tgz
# tar zxvf amqp-1.7.1.tgz
# cd amqp-1.7.1
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp
# make
# make install
# vim /usr/local/php/etc/php.ini
extension=amqp.so

重启php-fpm
# /usr/local/php/sbin/php-fpm -y /usr/local/php/etc/php-fpm.conf

php操作demo
1. 创建队列
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'192.168.2.2' , 'port'=> '3333', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->setTimeout(1);
$conn->connect();
//创建exchange名称和类型
$channel = new AMQPChannel($conn);
$ex = new AMQPExchange($channel);
$ex->setName('ttlsa_exchange');
$ex->setType(AMQP_EX_TYPE_DIRECT);
$ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$ex->declare();
//创建queue名称,使用exchange,绑定routingkey
$q = new AMQPQueue($channel);
$q->setName('ttlsa_queue');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('ttlsa_exchange', 'ttlsa_routingkey');
//消息发布
$channel->startTransaction();
$message = json_encode(array('Hello World!','DIRECT'));
$ex->publish($message, 'ttlsa_routingkey');
$channel->commitTransaction();
$conn->disconnect();
?>

2. 获取队列信息:

<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'192.168.2.2' , 'port'=> '3333', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//设置queue名称,使用exchange,绑定routingkey
$channel = new AMQPChannel($conn);
$q = new AMQPQueue($channel);
$q->setName('ttlsa_queue');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('ttlsa_exchange', 'ttlsa_routingkey');
//消息获取
$messages = $q->get(AMQP_AUTOACK) ;
if ($messages){
var_dump(json_decode($messages->getBody(), true ));
}
$conn->disconnect();
?>

免责声明:文章转载自《centos 安装和配置 rabbitmq》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi的保存文件对话框-TsaveDialogSuperSocket源码解析之会话生命周期下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CentOS下使用LVM进行分区(转)

说明:为什么抄,因为这篇文章图文并茂,所有测试都在CentOS 6和7测试过。 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份、删除相关数据,甚至被迫重新规划分区并重装操作系统,以满足应用系统的需要。 LVM是Linux环境中对磁盘分区进行管理的一种机制,是...

deb包制作

简介 deb编包的本质是:将编译过程自动化,并生成可执行程序,使得可以通过apt-get中安装。 源码,编译器编译成指定架构版本的二进制,不同架构的二进制组织形式不同,如大小端对齐。 DEB源码介绍 DEB 包的源码是由:程序源码+debian 目录构成,其中 debian 目录中存放着打包成 DEB 文件所需的全部文件。通过 debian 目录中的文件可...

Windows无人值守文件unattend制作以及自定义系统安装

原文链接:Create media for automated unattended install of Windows 10   我从来没看到过像上面的文章一样这么详细的描述过Windows10的无人值守安装过程,看完长知识了,值得一看。之后我会将自己的制作过程发出来,让大家学习一下。   只为了学习,如果有侵权请您联系我,我会将此文删除。 推荐:  ...

Erlang--etc结构解析

Erlang中可以用List表达集合数据,但是如果数据量特别大的话在List中访问元素就会变慢了;这种主要是由于List的绝大部分操作都是基于遍历完成的. Erlang的设计目标是软实时(参考:http://en.wikipedia.org/wiki/Real-time_computing),在大量数据中检索的时间不仅要快而且要求是常量.为了解决快速查 询...

CentOS terminal 安装 matlab(mode=silent)

1. 下载matlab for Unix 2014 ,需要crack文件 2. 挂载iso文件, mount -o loop,ro Mathworks.Matlab.R2014a.iso /media 3. 将crack中的install.jar 覆盖/media/java/jar下面的install.jar,这步骤必须正确完成 sudo cp Crack...

qcow2 磁盘扩容方法,亲测好使

在linux上创建kvm虚拟机,创建的虚拟机觉得硬盘空间太小可能会影响以后的使用,然后找见这篇文章扩容,非常好使   qcow2 磁盘扩容方法 直接扩展现有qcow2格式磁盘大小的方法 1. 查看磁盘文件信息,进行扩展 2. 启动虚拟机查看磁盘信息 3. 开始分区 4. 创建物理卷、加入卷组、扩展逻辑卷 5. 确认磁盘是否增长 直接扩展现有qc...