Mac部署RabbitMq集群 完整

安装版本为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,随便取值,通过第三方工具生成。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 大家好,年底了,年味儿越来越浓了.2019年的寒冬被定义为未来10年中最好的一年,对于这一说法悲观的人和乐观的人的...
    jerrybail阅读 1,321评论 0 1
  • 一台服务器部署两个节点: 关闭防火墙,关selinux。 1.做好本地域名解析 2.. 安装依赖包[root@la...
    强_b75e阅读 933评论 0 1
  • 拓扑结构介绍: 192.168.43.125 rabbitMQ01 192.168.43.126 rabbitMQ...
    深度遗忘阅读 681评论 0 0
  • 0.前言 目前手上的一个中长期任务就是消息队列的升级,继RocketMQ之后,开始对RabbitMQ进行研究,首先...
    海涛_meteor阅读 2,333评论 0 2
  • 什么叫消息队列? 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复...
    Agile_dev阅读 2,427评论 0 24

友情链接更多精彩内容