文章目录
- 前言
- [一、Windows 安装 RabbitMq](#一、Windows 安装 RabbitMq)
-
- 1、版本关系
- 2、Erlang
-
- [2.1、下载安装 Erlang 23.1](#2.1、下载安装 Erlang 23.1)
- [2.2、配置 Erlang 环境变量](#2.2、配置 Erlang 环境变量)
- 3、RabbitMQ
-
- [3.1、下载安装 RabbitMQ 3.8.9](#3.1、下载安装 RabbitMQ 3.8.9)
- 3.2、环境变量
- [3.3、启动RabbitMQ 管理插件](#3.3、启动RabbitMQ 管理插件)
- 3.3、RabbitMQ
- 3.4、注意事项
- 二、安装docker
-
- 1、更新系统包:
- 2、安装必要的软件包:
- 3、添加Docker的YUM存储库:
- [4、安装Docker Engine:](#4、安装Docker Engine:)
- 5、启动Docker:
- 6、验证Docker安装:
- 三、docker安装Rabbitmq
- 四、docker安装Rabbitmq集群
-
- 1、拉取RabbitMQ镜像:
- [2、创建 docker 网络(让容器可以和主机通信)](#2、创建 docker 网络(让容器可以和主机通信))
- [3、创建三个容器,端口分别是 5673 5674 5675 ,管理端口是 15673 15674 15675](#3、创建三个容器,端口分别是 5673 5674 5675 ,管理端口是 15673 15674 15675)
- 4、后两个节点作为内存节点加入集群
- 5、加入集群失败
前言
本文介绍rabbitmq多种安装模式
一、Windows 安装 RabbitMq
1、版本关系
- RabbitMQ 依赖于 Erlang,需要先安装 Erlang
- Erlang 和 RabbitMQ 版本有对应关系
2、Erlang
2.1、下载安装 Erlang 23.1
如果下载太慢了,可以把地址贴到迅雷里面,下载到本机
安装地址
https://www.erlang.org/downloads/23.1
安装exe 文件一直 next 就可以
2.2、配置 Erlang 环境变量
ERLANG_HOME=C:\Program Files\erl23.1
Path 添加
%ERLANG_HOME%\bin;
dos 输入 erl,输入能显示版本号则安装正确
3、RabbitMQ
3.1、下载安装 RabbitMQ 3.8.9
https://www.rabbitmq.com/docs/install-windows
3.2、环境变量
RABBITMQ_SERVER=C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9
Path
%RABBITMQ_SERVER%\sbin;
3.3、启动RabbitMQ 管理插件
dos 中输入
"C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.9\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
3.3、RabbitMQ
启动
net start RabbitMQ
关闭
net stop RabbitMQ
访问管理界面:http://localhost:15672/
默认用户名:guest
默认密码为:guest
默认配置文件地址:
C:\Users\sjl\AppData\Roaming\RabbitMQ\advanced.config
数据目录:
C:\Users\sjl\AppData\Roaming\RabbitMQ\db\rabbit@用户名-mnesia
3.4、注意事项
如果遇到无法启动的问题,先尝试在控制面板 ------ 服务 ------ 启动。
如果已经启动了,先服务里面停掉或者尝试用命令
.\rabbitmq-server.bat stop
.\rabbitmq-server.bat start
注意只能用 dos,不要用 powershell
如果要初始化 RabbitMQ,移除全部数据:
rabbitmq-service stop
rabbitmq-service remove
rabbitmq-service install
rabbitmq-service start
二、安装docker
1、更新系统包:
先更新系统中的YUM包管理工具和所有软件包,确保系统是最新的。
sudo yum -y update
2、安装必要的软件包:
安装软件包以允许YUM通过HTTPS使用存储库。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3、添加Docker的YUM存储库:
使用 yum-config-manager 来设置存储库。
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4、安装Docker Engine:
使用下面的命令安装Docker。
sudo yum install -y docker-ce docker-ce-cli containerd.io
5、启动Docker:
启动Docker服务,并设置为开机自启动。
sudo systemctl start docker
sudo systemctl enable docker
6、验证Docker安装:
运行下面的命令以验证Docker是否正确安装和启动。
sudo docker --version
你应该能看到类似于 Docker version 20.10.7, build f0df350 的输出。
三、docker安装Rabbitmq
前提是安装了docker
1、拉取RabbitMQ镜像:
使用Docker命令拉取RabbitMQ的官方镜像。
docker pull rabbitmq:3.7.17-management
2、运行RabbitMQ容器:
运行以下命令创建并启动RabbitMQ容器。
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:management
- -d 参数是后台运行容器。
- --name rabbitmq 为容器指定名称。
- -p 5672:5672 暴露标准的AMQP端口。
- -p 15672:15672 暴露Web管理界面的端口。
3、访问RabbitMQ管理界面:
启动容器后,可以通过浏览器访问RabbitMQ的Web管理界面。
http://localhost:15672
四、docker安装Rabbitmq集群
前提是安装了docker
1、拉取RabbitMQ镜像:
使用Docker命令拉取RabbitMQ的官方镜像。
docker pull rabbitmq:3.7.17-management
2、创建 docker 网络(让容器可以和主机通信)
使用Docker命令拉取RabbitMQ的官方镜像。
docker network create rabbitmqnet
3、创建三个容器,端口分别是 5673 5674 5675 ,管理端口是 15673 15674 15675
docker run -d \
--name=rabbitmq1 \
-p 5673:5672 \
-p 15673:15672 \
-e RABBITMQ_NODENAME=rabbitmq1 \
-e RABBITMQ_ERLANG_COOKIE='GUPAOEDUFORBETTERYOU' \
-h rabbitmq1 \
--net=rabbitmqnet \
rabbitmq:management
docker run -d \
--name=rabbitmq2 \
-p 5674:5673 \
-p 15674:15672 \
-e RABBITMQ_NODENAME=rabbitmq2 \
-e RABBITMQ_ERLANG_COOKIE='GUPAOEDUFORBETTERYOU' \
-h rabbitmq2 \
--net=rabbitmqnet \
rabbitmq:management
docker run -d \
--name=rabbitmq3 \
-p 5675:5672 \
-p 15675:15672 \
-e RABBITMQ_NODENAME=rabbitmq3 \
-e RABBITMQ_ERLANG_COOKIE='GUPAOEDUFORBETTERYOU' \
-h rabbitmq3 \
--net=rabbitmqnet \
rabbitmq:management
4、后两个节点作为内存节点加入集群
docker exec -it rabbitmq2 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app
docker exec -it rabbitmq3 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app
访问:
访问管理界面:http://dockerIp:15673/
默认用户名:guest
默认密码为:guest
guest 用户默认只能在当前访问。如果是本机访问虚拟机的服务,需要添加其他用户(比如 admin),分配 vhost 权限才能远程访问
./rabbitmqctl add_user admin admin
./rabbitmqctl set_user_tags admin administrator
./rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
5、加入集群失败
- 主节点是否启动成功, 网络连接是否正常, ping hostname 能不能 ping 通?
- 25672 端口, 防火墙是否允许
- erlang.cookie 是否一致, 如果遇到类似这样的错误 :TCP connection succeeded but Erlang distribution failed
清除历史记录 mv /var/lib/rabbitmq/mnesia/* /tmp/,重启