RabbitMQ迁移至RabbitMQ指导
- 下载Erlang源码包和RabbitMQ源码包。
- 上传并解压Erlang和RabbitMQ源码包,以上传至/opt为例。
1 2
tar -xzvf otp_src_24.3.4.4.tar.gz tar -Jxvf rabbitmq-server-generic-unix-3.9.28.tar.xz
- 安装Erlang所需的依赖包,以麒麟系统为例。
1yum -y install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz glibc-devel xmlto perl gtk2-devel binutils-devel
- 编译安装Erlang。
创建并配置Erlang安装路径,以“/opt/erlang”为例。若安装过程中提示依赖不存在,请根据提示安装缺失依赖。
cd /opt/otp_src_24.3.4.4 mkdir /opt/erlang ./configure --prefix=/opt/erlang make -j4 && make install
- 配置Erlang和RabbitMQ的安装路径。
- 打开“/etc/profile”配置文件。
1vi /etc/profile - 按“i”进入编辑模式,增加如下内容。
export PATH=/opt/erlang/bin:$PATH export PATH=/opt/rabbitmq_server-3.9.28/sbin:$PATH
- 按“Esc”,输入:wq!,按“Enter”保存并退出。
- 使环境变量生效。
1source /etc/profile
- 打开“/etc/profile”配置文件。
- 启用页面管理功能并启动RabbitMQ。
1 2 3
cd rabbitmq_server-3.9.28/sbin ./rabbitmq-plugins enable rabbitmq_management ./rabbitmq-server start
若结果出现RabbitMQ的版本信息,且最后显示为“Starting broker… completed with 3 plugins.”,则表示RabbitMQ安装成功。
- 迁移配置文件、数据文件和日志文件。
源机上的RabbitMQ配置文件、数据文件和日志文件的默认路径如下:
1 2 3
/etc/rabbitmq /var/lib/rabbitmq /var/log/rabbitmq
- 若源机上为RPM方式安装,则上述三个文件默认存放在根目录下;若为源码编译安装,则上述三个文件存放在安装的源码包文件目录中。
- 目标机上使用源码包进行编译安装,其配置文件、数据文件和日志文件存放在源码包rabbitmq_server-3.9.28的相应目录下。
以上述路径为例,将源机路径/etc、/var/lib和/var/log下的rabbitmq文件夹分别拷贝并覆盖到目标机上的“/opt/rabbitmq_server-3.9.28/etc/rabbitmq”、“/opt/rabbitmq_server-3.9.28/var/lib/rabbitmq”和“/opt/rabbitmq_server-3.9.28/var/log/rabbitmq”文件夹。
- 若源机与目标机的主机名不一致,则需修改目标机主机名。
- 在目标机的“/opt/rabbitmq_server-3.9.28/etc/rabbitmq”目录下,新建rabbitmq-env.conf配置文件。
1vi rabbitmq-env.conf - 按“i”进入编辑模式,增加如下内容。server表示源机主机名。
NODENAME=rabbit@server
- 按“Esc”,输入:wq!,按“Enter”保存并退出。
- 更改目标机主机名为源机名。
hostnamectl set-hostname server
- 在目标机的“/opt/rabbitmq_server-3.9.28/etc/rabbitmq”目录下,新建rabbitmq-env.conf配置文件。
- 开启防火墙端口。
1 2
firewall-cmd --add-port=15672/tcp --permanent firewall-cmd --reload
--permanent为永久设定,需自行确认是否符合安全规范。若不设定此选项,将在firewalld重启后失效。
- 启动目标机上的RabbitMQ,浏览器访问http://IP地址:15672并使用源机上RabbitMQ的用户名和密码登录,若源机创建的交换机、消息队列和收发的消息数据均在,并能正常收发消息,则说明迁移成功。
父主题: 中间件迁移相关指导