安装版本为rabbitmq 3.9.11,最新稳定版,rabbitmq 3.x版本安装部署一样。
一、安装、启动、关闭
1)安装
brew安装:brew install rabbitmq
如果中途报xcode错误,根据错误提示 可能需要去apple官网下载Command_Line_Tools_for_Xcode_1x.x.x 安装后,再执行上述命令安装mq;安装默认路径为:/usr/local/Cellar/rabbitmq/3.9.11/sbin.
2)启动、停止
前台启动:/usr/local/Cellar/rabbitmq/3.9.11/sbin/rabbitmq-server
后台启动:/usr/local/Cellar/rabbitmq/3.9.11/sbin/rabbitmq-server -detached
关闭:/usr/local/Cellar/rabbitmq/3.9.11/sbin/rabbitmqctl stop
查看状态:/usr/local/Cellar/rabbitmq/3.9.11/sbin/rabbitmqctl status
默认配置启动后,实例节点名为 rabbit
可以访问管理后台:http://localhost:15672,默认用户名和密码为guest guest
通过命令查看新增占用端口:lsof -nP | grep TCP | grep LISTEN
3)配置任何路径可以运行rabbitmq命令
修改~/.bash_profile文件,使用vi ~/.bash_profile命令打开文件,在文件末尾添加该语句:export PATH=$PATH:/usr/local/sbin保存后,source ~/.bash_profile让命令生效。
二、集群部署
1)创建配置文件
rabbitmq3.9.11默认没有配置文件,下载源码rabbitmq-server-3.9.11.zip 解压缩后有rabbitmq-server-3.9.11/deps/rabbit/docs/rabbitmq.conf.example 参考。自己创建配置文件
单机部署三个rabbitmq实例,注意RabbitMQ使用的 端口号、配置文件不能冲突;创建配置目录放/opt下,创建目录和文件修改权限,命令如下:
sudo mkdir /opt/rabbitconf
cd /opt/
chown :staff -R rabbitconf
touch rabbit1.conf rabbit2.conf rabbit3.conf
chmod -R 777 rabbit1.conf rabbit2.conf rabbit3.conf
2)写配置文件内容
由于端口冲突,故配置2和配置3 均比配置1属性多,修改端口
配置1 rabbit1.conf:
management.tcp.port=15672
loopback_users.guest=false
配置2 rabbit2.conf
management.tcp.port=15673
loopback_users.guest=false
stream.listeners.tcp=none
mqtt.listeners.tcp.default = 1884
stomp.listeners.tcp.1 = 127.0.0.1:61618
stomp.listeners.tcp.2 = ::1:61618
stomp.listeners.ssl=none
配置3 rabbit3.conf
management.tcp.port=15674
loopback_users.guest=false
stream.listeners.tcp=none
mqtt.listeners.tcp.default = 1885
stomp.listeners.tcp.1 = 127.0.0.1:61620
stomp.listeners.tcp.2 = ::1:61620
stomp.listeners.ssl=none
3)启动三个rabbitmq实例
RABBITMQ_NODENAME=rabbit1 RABBITMQ_NODE_PORT=5672 RABBITMQ_CONFIG_FILE=/opt/rabbitconf/rabbit1.conf rabbitmq-server
RABBITMQ_NODENAME=rabbit2 RABBITMQ_NODE_PORT=5673 RABBITMQ_CONFIG_FILE=/opt/rabbitconf/rabbit2.conf rabbitmq-server
RABBITMQ_NODENAME=rabbit3 RABBITMQ_NODE_PORT=5674 RABBITMQ_CONFIG_FILE=/opt/rabbitconf/rabbit3.conf rabbitmq-server
4)加入集群
第一个实例不用处理,将第二个和第三个实例加入到第一个实例成为需要的集群(其实每个实例都是集群只是集群实例为1,用第一个实例为主,其余加入)
第一个阶段:将rabbit2加入集群。
(1)停止Erlang Vm上运行的RabbitMq应用,保持Erlang VM的运行
rabbitmqctl stop_app -n rabbit2
(2)移除第二个节点实例上RabbitMq虚拟主机上所有数据:重置数据
rabbitmqctl reset -n rabbit2
(3)将当前RabbitMq的主机加入到rabbit1这个虚拟主机的集群中,一个实例节点也是集群
rabbitmqctl -n rabbit2 join_cluster rabbit1
(4)启动当前Erlang Vm的RabbitMq应用
rabbitmqctl -n rabbit2 start_app
第二个阶段:将rabbit3加入集群,步骤同上
rabbitmqctl stop_app -n rabbit3
rabbitmqctl reset -n rabbit3
rabbitmqctl -n rabbit3 join_cluster rabbit1
rabbitmqctl -n rabbit3 start_app
5)修改集群名和查看集群信息
修改集群名字(rabbit1改为rabbits):rabbitmqctl -n rabbit1 set_cluster_name rabbits
查看集群信息:rabbitmqctl cluster_status -n rabbit1
6)添加用户
添加用户和密码
rabbitmqctl add_user root 123456 -n rabbit1
加入用户组
rabbitmqctl set_user_tags root administrator -n rabbit1
设置权限(最高权限)
rabbitmqctl set_permissions -p / root ".*" ".*" ".*" -n rabbit1
6)设置镜像队列集群
全复制all:rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}' -n rabbit1
备注:
单机部署rabbitmq集群和多机部署集群操作一样,唯一的区别就是多机器配置相同的:三个节点的.erlang.cookie配置一样的key值:GHHKKHKJHKKKKKJJIUHUGUYKJKJKKK,随便取值,通过第三方工具生成。