Windows安装RabbitMq

  1. 由于其基于Erlang语言编写,所以先安装Erlang,下载地址

    双击安装,安装路径不要与中文与空格

    • 配置环境变量

    • path中添加

    • cmd中测试

  2. 安装RabbitMQ,下载地址

    下载后双击安装

  3. RabbitMQ Server安装完成之后,会自动注册为服务,并以默认配置进行启动

    可能的问题:启动失败,通常是由于用户名为中文,导致默认的db和log目录访问出现问题。解决方法,写在RabbitMQ,配置环境变量RABBITMQ_BASE为一个不含中文的路径,如E:\rabbitmq,然后重新安装

Rabbit管理

  1. 进入rabbitMQ安装目录下的sbin目录,执行如下命令开启WEB管理插件,rabbitmq-plugins.bat enable rabbitmq_management

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    C:\software\RabbitMQ\rabbitmq_server-3.7.18\sbin>rabbitmq-plugins.bat enable rabbitmq_management
    Enabling plugins on node rabbit@DESKTOP-KJFR0VP:
    rabbitmq_management
    The following plugins have been configured:
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@DESKTOP-KJFR0VP...
    The following plugins have been enabled:
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch

    started 3 plugins.
  2. 打开浏览器并访问http://localhost:15672

  3. 默认用户名,密码均是guest

CentOS7安装RabbitMQ单机版(3.8.4)

软件安装方式

同一个软件有很多种不同的安装方式,Linux操作系统中安装软件有几种常见方式:
1、源码编译安装:一般需要解压然后用make 、make install等命令,这种方式步骤比较复杂,编译时间长,而且结果不可控
2、RPM(RedHat Package Manager)是一个软件管理包,安装卸载变得简单了,但是无法解决软件包之间的依赖关系问题
3、YUM(Yellow dog Updater, Modified)是一个RPM的前端程序,可以自动解决软件的依赖关系。但是要注意版本的问题,默认从仓库中获取安装的不一定是最新版本
4、不需要安装只要配置环境变量的

CentOS是RedHat的分支,所以rpm和yum都可以使用。

版本关系

在RabbitMQ中需要注意两点:
1、RabbitMQ依赖于Erlang,需要先安装Erlang
2、Erlang和RabbitMQ版本有对应关系
http://www.rabbitmq.com/which-erlang.html

安装Erlang 21.3

先安装一些必要的依赖:

1
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget

注意:因为每个人的操作系统环境是不一样的,缺少的依赖不同,根据提示安装即可。

https://www.erlang.org/downloads/21.3
如果下载太慢了,可以把地址贴到迅雷里面,下载到本机,再上传到虚拟机

1
2
3
4
wget http://erlang.org/download/otp_src_21.3.tar.gz
tar -xvf otp_src_21.3.tar.gz
cd otp_src_21.3
./configure --prefix=/usr/local/erlang

configure的过程如果有err,要解决依赖的问题。
如果有APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION,没有影响。

1
make && make install

如果提示缺少socat

1
yum install -y socat

配置Erlang环境变量

1
vim /etc/profile

加入一行

1
export PATH=$PATH:/usr/local/erlang/bin

编译生效

1
source /etc/profile

验证Erlang是否安装成功

输入erl,会出现版本信息,即安装成功
20200620_213420.png

安装RabbitMQ 3.8.4

https://github.com/rabbitmq/rabbitmq-server/releases

1
2
3
wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.8.4/rabbitmq-server-generic-unix-3.8.4.tar.xz
xz -d rabbitmq-server-generic-unix-3.8.4.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.8.4.tar

配置RabbitMQ环境变量

假设下载的目录在 /usr/local

1
2
3
vim /etc/profile
export PATH=$PATH:/usr/local/rabbitmq_server-3.8.4/sbin
source /etc/profile

启动RabbitMQ

1
2
# 后台启动rabbitmq服务
rabbitmq-server -detached

或者

1
rabbitmq-server start

或者

1
service rabbitmq-server start

启动的常见问题是端口被占用,kill rabbitmq 重启即可

1
2
3
ps -ef | grep rabbit
kill -9 进程号
rabbitmq-server start

看到兔子头像就启动成功了
20200620_214501.png

添加其他用户

因为guest用户只能在本机访问,添加一个admin用户,密码也是admin

1
2
3
rabbitmqctl add_user admin admin
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
rabbitmqctl set_user_tags admin administrator

启用管理插件

1
rabbitmq-plugins enable rabbitmq_management

访问:
http://虚拟机IP:15672

20200620_214826.png

Docker安装RabbitMQ集群

1)拉取RabbitMQ镜像(带managment)

1
docker pull rabbitmq:3.7.17-management

2)创建docker网络(让容器可以和主机通信)

1
docker network create rabbitmqnet

3)创建三个容器,端口分别是 5673 5674 5675 ,管理端口是 15673 15674 15675

1
2
3
4
5
6
7
8
9
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
1
2
3
4
5
6
7
8
9
docker run -d \
--name=rabbitmq2 \
-p 5674:5672 \
-p 15674:15672 \
-e RABBITMQ_NODENAME=rabbitmq1 \
-e RABBITMQ_ERLANG_COOKIE='GUPAOEDUFORBETTERYOU' \
-h rabbitmq2 \
--net=rabbitmqnet \
rabbitmq:management
1
2
3
4
5
6
7
8
9
docker run -d \
--name=rabbitmq3 \
-p 5675:5672 \
-p 15675:15672 \
-e RABBITMQ_NODENAME=rabbitmq1 \
-e RABBITMQ_ERLANG_COOKIE='GUPAOEDUFORBETTERYOU' \
-h rabbitmq3 \
--net=rabbitmqnet \
rabbitmq:management

4)后两个节点作为内存节点加入集群

1
2
3
4
5
6
docker exec -it rabbitmq2 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app

1
2
3
4
5
docker exec -it rabbitmq3 /bin/bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbitmq1@rabbitmq1
rabbitmqctl start_app

访问:http://192.168.8.146:15673/

guest/guest登录