一、单机版的 RabbitMQ 的安装部署
1、安装 Erlang 环境
wget http://erlang.org/download/otp_src_19.3.tar.gz
tar -zxvf otp_src_19.3.tar.gz
cd otp_src_19.3
./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
##################################
./configure时出现错误:error: No curses/termcap library found。
原因:缺少ncurses安装包
解决办法:yum install ncurses-devel
##################################
make & make install
2、安装 RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-generic-unix-3.6.15.tar.xz
tar -Jxf rabbitmq-server-generic-unix-3.6.15.tar.xz
执行如下命令直接启动了
cd rabbitmq_server-3.6.15/
sbin/rabbitmq-server start
sbin/rabbitmq-server -detached #后台运行
3、使用 RabbitMQ CTL 命令管理 RabbitMQ
3.1 启动相关
sbin/rabbitmqctl start_app // 启动应用
sbin/rabbitmqctl stop_app // 关闭应用
sbin/rabbitmqctl reset //重置应用
sbin/rabbitmqctl shutdown // 关闭应用和stop_app差不多
sbin/rabbitmqctl status //查看对应的rabbitmq状态
3.2 用户相关
sbin/rabbitmqctl add_user//添加用户
sbin/rabbitmqctl delete_user// 删除用户
sbin/rabbitmqctl change_password//修改密码
sbin/rabbitmqctl clear_password//清除用户密码
sbin/rabbitmqctl set_user_tags… // 设置用户标签
sbin/rabbitmqctl list_users // 列出所有用户
3.3 vhost 相关
sbin/rabbitmqctl add_vhost// 添加vhost
sbin/rabbitmqctl delete_vhost// 删除vhost
sbin/rabbitmqctl list_vhost // 列出所有的vhost
3.4 权限相关
sbin/rabbitmqctl set_permissions [-p]// 设置用户对应的权限
sbin/rabbitmqctl list_user_permissions// 列出用户的权限
sbin/rabbitmqctl list_permissions [-p] // 列出vhost的权限
sbin/rabbitmqctl clear_permissions [-p]// 清除用户的权限
3.5 队列消息相关
sbin/rabbitmqctl list_queues [-p] //列出vhsot中对应的queue
sbin/rabbitmqctl list_exchanges [-p] //列出vhsot中对应的交换机
sbin/rabbitmqctl list_bindings [-p] // 列出对应的绑定信息
sbin/rabbitmqctl list_connections // 列出对应的连接数
sbin/rabbitmqctl list_channels // 列出对应的信道
sbin/rabbitmqctl list_consumers //列出对应的消费者
sbin/rabbitmqctl list_queues -p vhost_test1 //列出queues
sbin/rabbitmqctl list_queues -p vhost_test1 name messages consumers memory //查看queues对应统计信息
3.6 具体实例
创建一个名为 vhost_test1 的 vhost,
再创建一个 test 的用户赋予 admin 的权限,并且拥有 vhost_test1 权限,以及赋予读写和配置文件操作的权限。
sbin/rabbitmqctl add_vhost vhost_test1 // 创建vhost
sbin/rabbitmqctl add_user test 123456
sbin/rabbitmqctl set_user_tags admin administrator //设置test有admin权限
sbin/rabbitmqctl set_permissions -p vhost_test1 test "." "." ".*" //设置用户的读写配置文件权限
查看所有的 vhost :
sbin/rabbitmqctl list_vhosts
查看所有的用户:
sbin/rabbitmqctl list_users
查看 vhost_test1 下用户的权限:
sbin/rabbitmqctl list_permissions -p vhost_test1
单独查询 test 用户的权限:
sbin/rabbitmqctl list_user_permissions test
4. RabbitMQ 之插件管理
查看默认支持的所有插件:
sbin/rabbitmq-plugins list
开启后台管理界面,找到对应的 rabbitmq_management 启用一下:
sbin/rabbitmq-plugins enable rabbitmq_management
启动成功之后访问 http://ip:15672/#/。
用我们之前 rabbitmqctl 创建的用户 test 登录进去
二 集群搭建
1、群节点间需能互相访问,故每个集群节点的hosts文件应包含集群内所有节点的信息以保证互相解析
vim /etc/hosts
1 IP rabbitmq-node1
2 IP rabbitmq-node2
3 IP rabbitmq-node3
2、同步.erlang.cookie
保持三台机器的.erlang.cookie同步
/root/.erlang.cookie
3、分别启动node1 node2 node3
rabbitmq-server -detached
4、停node2、node3应用
rabbitmqctl stop_app
5、将node2、node3加到mq1中
rabbitmqctl join_cluster rabbit@rabbitmq-node1
6、启动node2、node3应用
rabbitmqctl start_app
7、查看集群状态
rabbitmqctl cluster_status