centos 7上RabbitMQ3.7版本集群安装与配置

1.设置yum文件,方便yum安装rabbitmq 3.7

安装rabbitmq3.7以上版本,需要erlang的兼容版本在20以上

增加文件:/etc/yum.repos.d/rabbitmq.repo

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

增加文件:/etc/yum.repos.d/rabbitmq_erlang.repo

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

2.卸载现有erlang现有版本

rpm -qa |grep erlang
yum remove *****
#安装相关依赖
yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel java-1.7.0-openjdk-devel.x86_64
yum install socat

3.yum安装rabbitmq

yum install -y rabbitmq-server

4.修改hosts文件

因为mq集群需要通过机器名称访问,所以需要将集群的每个节点都设置到hosts文件里:

vi /etc/hosts

10.248.201.76  host-10-248-201-76
10.248.201.57  host-10-248-201-57
10.248.201.48  host-10-248-201-48
10.248.201.71  host-10-248-201-71
10.248.201.90  host-10-248-201-90
10.248.201.50  host-10-248-201-50
10.248.201.22  host-10-248-201-22

5.配置rabbitmq

设置自启动:

systemctl enable rabbitmq-server

选择第一个节点,重启rabbitmq:

systemctl restart rabbitmq-server

6.配置集群cookie文件

Rabbitmq集群需要一个统一的认证方式,这里采用cookie方式,将第一个节点生成的cookie文件,复制到其他节点,即可实现统一认证。

第一次启动以后,会生成 cookie 文件,将该文件拷贝到集群其他节点的对应目录:

scp /var/lib/rabbitmq/.erlang.cookie root@controller02:/var/lib/rabbitmq/.erlang.cookie

在其它节点上设置一下 cookie 文件权限:

chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie

查看节点状态:

systemctl status rabbitmq-server

7.修改rabbitmq集群配置文件

vi /etc/rabbitmq/rabbitmq.conf

# this is rabbitmq setting
listeners.tcp.local = 0.0.0.0:5672
heartbeat = 60
frame_max = 131072
channel_max = 128
vm_memory_high_watermark.relative = 0.4
vm_memory_high_watermark_paging_ratio = 0.5
vm_memory_high_watermark.absolute = 8GB
disk_free_limit.absolute = 50000
log.console = false
log.console.level = error
log.exchange = false
log.exchange.level = error
tcp_listen_options.backlog = 8192
tcp_listen_options.nodelay = true
tcp_listen_options.linger.on = true
tcp_listen_options.linger.timeout = 0
tcp_listen_options.sndbuf = 32768
tcp_listen_options.recbuf = 32768
handshake_timeout = 20000

将配置文件复制到其他集群节点:

scp /etc/rabbitmq/rabbitmq.conf root@host-10-248-201-71:/etc/rabbitmq/rabbitmq.conf

8.在集群其他节点执行

systemctl restart rabbitmq-server
rabbitmqctl stop_app
rabbitmqctl reset
#默认为磁盘节点
rabbitmqctl join_cluster "rabbit@host-10-248-201-76"
#设置为加入内存节点
rabbitmqctl join_cluster --ram "rabbit@host-10-248-201-76"
rabbitmqctl start_app

9.查看集群状态

rabbitmqctl cluster_status

10.设置访问用户

rabbitmqctl add_user admin 123456
rabbitmqctl change_password guest ******
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
rabbitmqctl list_users

11.设置为镜像模式

默认安装完成后,为普通模式,即没有实现高可用,只是单点存储队列消息,丢失后无法继续访问。配置为镜像模式后,每个节点都保存完整的队列消息,实现了高可用。

在集群里任一个节点上,只需执行一个命令:

rabbitmqctl set_policy -p coresystem  ha-all "^" '{"ha-mode":"all"}'

"coresystem" vhost名称, "^"匹配所有的队列, ha-all 策略名称为ha-all, '{"ha-mode":"all"}' 策略模式为 all 即复制到所有节点,包含新增节点。

12.监控界面配置插件

开启某个插件:
rabbitmq-plugins enable  xxx
关闭某个插件:
rabbitmq-plugins disable xxx

如:

rabbitmq-plugins enable rabbitmq_management
#查看插件列表
rabbitmq-plugins list

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值