RABBITMQ4.0集群部署

机器准备

集群机器数量最小为两台,为了防止脑裂问题最好大于等于三台且为奇数

网络环境

设置主机名,三台机器分别设置为rabbitmq1、rabbitmq2、rabbitmq3

# host1
sudo hostnamectl set-hostname rabbitmq1

# host2
sudo hostnamectl set-hostname rabbitmq2

# host3
sudo hostnamectl set-hostname rabbitmq3

设置主机名-IP映射

查询每台机器的ip地址,可用以下命令查询

ifconfig

查询后在所有机器的/etc/hosts文件中增加映射

192.168.1.1 rabbitmq1
192.168.1.2 rabbitmq2
192.168.1.3 rabbitmq3

防火墙

开放防火墙端口
4369(Erlang端口映射)、25672(节点通信)、5672(AMQP)、15672(管理插件)

RABBITMQ安装

rabbitmq依赖版本对应关系
本次安装版本选择:

  • RABBITMQ-4.0.6
  • ERLANG-27.2

ERLANG安装

erlang下载地址
选择源码下载,下载后上传到所有机器解压安装

# 解压源码包
tar -zxvf otp_src_27.2.tar.gz
# 安装必要插件
sudo apt update
sudo apt install -y build-essential autoconf m4 libncurses5-dev libncursesw5-dev \
  libwxgtk3.0-gtk3-dev libssh-dev unixodbc-dev libssl-dev curl
# 编译&安装
cd otp_src_27.2
./configure \
  --prefix=/usr/local/erlang \
  --without-wx \
  --enable-threads \
  --enable-smp-support \
  --enable-kernel-poll \
  --enable-docs
sudo make -j8 && make install

RABBITMQ安装

参考: 官方文档

#!/bin/sh

sudo apt-get install curl gnupg apt-transport-https -y

## Team RabbitMQ's main signing key
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null
## Community mirror of Cloudsmith: modern Erlang repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null
## Community mirror of Cloudsmith: RabbitMQ repository
curl -1sLf https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null

## Add apt repositories maintained by Team RabbitMQ
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
## Provides modern Erlang/OTP releases
##
deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main

# another mirror for redundancy
deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.rabbitmq.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://ppa2.rabbitmq.com/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main

## Provides RabbitMQ
##
deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main

# another mirror for redundancy
deb [arch=amd64 signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
deb-src [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://ppa2.rabbitmq.com/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
EOF

## Update package indices
sudo apt-get update -y

## Install Erlang packages
sudo apt-get install -y erlang-base \
                        erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                        erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                        erlang-runtime-tools erlang-snmp erlang-ssl \
                        erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

集群部署

cookie迁移

将rabbitmq1的cookie文件复制到其他机器

sudo scp /var/lib/rabbitmq/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie

rabbitmq2和rabbitmq3设置cookie文件归属

sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
sudo chmod 600 /var/lib/rabbitmq/.erlang.cookie

rabbitmq2、rabbitmq3加入rabbitmq集群

# 重启rabbitmq服务让cookie生效
sudo systemctl restart rabbitmq-server.service
# 关闭当前应用
sudo rabbitmqctl stop_app
# 加入并启动集群应用
sudo rabbitmqctl join_cluster rabbit@rabbitmq1
sudo rabbitmqctl start_app

查看集群状态并设置开机启动

# 查看集群信息,节点包括所有机器
sudo rabbitmqctl cluster_status
# 所有机器执行开机自启
sudo systemctl enable rabbitmq-server.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值