如何在Windows、Linux系统中安装rabbitmq

一:RabbitMQ简介

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

二:工作过程

发布者(Publisher)发布消息(Message),经由交换机(Exchange)。

交换机根据路由规则将收到的消息分发给与该交换机绑定的队列(Queue)。

最后 AMQP 代理会将消息投递给订阅了此队列的消费者,或者消费者按照需求自行获取。

三:Windows下安装rabbitmq

Rabbit MQ 是建立在Erlang OTP平台上,所以在安装rabbitMQ之前,需要先安装Erlang ,下载地址为http://www.erlang.org/downloads

1.下载完成后,双击进行安装

 

 2.安装完成之后创建一个名为ERLANG_HOME的环境变量,其值指向erlang的安装目录

  

 

 

 3.将%ERLANG_HOME%\bin加入到Path中

  

 

 

 4.检查erl是否安装成功

  打开cmd,输入erl

  

 

 

   如上图所示出现erlang的版本信息就表示erlang语言环境安装成功;

5.然后下载并安装Rabbitmq,下载地址为:http://www.rabbitmq.com/download.html

  

 

 

 

   下载好之后,双击进行安装

  

 

  

   选择自己的安装目录,我的安装目录是E:\Develop\rabbitmq,默认安装的RabbitMQ 监听端口是5672,默认用户名:guest,密码:guest。

6.RabbitMQ-Plugins插件安装

  这个插件相当于是一个管理界面,方便我们在浏览器界面查看RabbitMQ各个消息队列以及exchange的工作情况,安装方法是:打开命令行cmd进入rabbitmq的sbin目录(我的目录是:E:\Develop\rabbitmq\rabbitmq_server-3.8.5\sbin),输入:
  rabbitmq-plugins enable rabbitmq_management

  稍等会出现plugins安装成功的提示

  

   然后重启服务,使用命令(此时最后以管理员运行CMD):

    net stop RabbitMQ && net start RabbitMQ

  插件安装完之后,在浏览器输入http://localhost:15672进行验证

  

 

 

   

   完成上面所有步骤,那么在Windows系统安装rabbitmq就已经完成

四:Linux系统安装rabbitmq(rpm安装包方式,因为rabbitmq与erlang版本不匹配导致无法启动)

1.和Windos系统安装rabbitmq一样,由于RabbitMQ依赖Erlang, 所以需要先安装Erlang,Erlang的安装方式大概有两种:

  • 从Erlang Solution安装(此方式安装的erlang版本较高,和下文教程中rabbitMQ的版本不一致,建议安装高版本的rabbitMQ)   

    # 添加erlang solutions源
    $ wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
    $ sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm --force --nodeps
    $ sudo yum install erlang

  • 从EPEL源安装(此方式安装的Erlang版本可能不是最新的,有时候不能满足RabbitMQ需要的最低版本)

    # 启动EPEL源

    $ sudo yum install epel-release 

    # 安装erlang
    $ sudo yum install erlang

2.安装RabbitMQ

  • 先下载rpm

    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm 

  • 下载完成后安装

    yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm 

  • 安装时如果遇到下面的依赖错误

    Error: Package: socat-1.7.2.3-1.el6.x86_64 (epel)

    Requires: libreadline.so.5()(64bit)

  • 可以尝试先执行

    $ sudo yum install socat

3.关于RabbitMQ的一些基本操作

  $ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务
  $ sudo /sbin/service rabbitmq-server start # 启动服务
  $ sudo /sbin/service rabbitmq-server status # 查看服务状态
  $ sudo /sbin/service rabbitmq-server stop # 停止服务

  # 查看当前所有用户
  $ sudo rabbitmqctl list_users

  # 查看默认guest用户的权限
  $ sudo rabbitmqctl list_user_permissions guest

  # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户
  $ sudo rabbitmqctl delete_user guest

  # 添加新用户
  $ sudo rabbitmqctl add_user username password

  # 设置用户tag
  $ sudo rabbitmqctl set_user_tags username administrator

  # 赋予用户默认vhost的全部操作权限
  $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

  # 查看用户的权限
  $ sudo rabbitmqctl list_user_permissions username

4.开启web管理接口

  如果只从命令行操作RabbitMQ,多少有点不方便。幸好RabbitMQ自带了web管理界面,只需要启动插件便可以使用。

  $ sudo rabbitmq-plugins enable rabbitmq_management

  然后通过浏览器访问http://localhost:15672,输入用户名和密码访问web管理界面。

5.配置RabbitMQ并启动服务端

  • 因为是用rpm包安装,可从默认docs目录复制配置文件样例:

    cp /usr/share/doc/rabbitmq-server-3.6.15/rabbitmq.config.example /etc/rabbitmq.config

  • ##也可以自己创建一个rabbitmq.config文件,然后加入下面配置允许除本机外的其他地址访问rabbitmq

    [{rabbit, [{loopback_users, []}]}].

  • 启动rabbitmq服务端,发现启动rabbitmq报错,

  

   报错原因就是erlang版本与rabbitmq不匹配,所以我下面卸载掉rabbitmq相关安装包,不再使用rpm包安装,而是换成压缩包安装。

7、卸载rabbitmq相关

  • 卸载前先停掉rabbitmq服务,执行命令
$ service rabbitmq-server stop
  • 查看rabbitmq安装的相关列表
$ yum list | grep rabbitmq
  • 卸载rabbitmq已安装的相关内容
$ yum -y remove rabbitmq-server.noarch

8、卸载erlang

  • 查看erlang安装的相关列表
$ yum list | grep erlang
  • 卸载erlang已安装的相关内容
$ yum -y remove erlang-*
$ yum -y remove erlang.x86_64

五、Linux系统安装rabbitmq(tar包的方式)

1.安装erlang

  • 安装rabbitmq依赖类库
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
wget http://erlang.org/download/otp_src_23.0.tar.gz  下载速度可能会很慢
  • 解压
tar -zxvf otp_src_23.0.tar.gz
  •  移走
mv otp_src_23.0 /usr/local/
  • 切换目录
cd /usr/local/otp_src_23.0/
  • 创建即将安装的目录
mkdir ../erlang
  • 配置安装路径
./configure --prefix=/usr/local/erlang
  • 如果遇到这个错 你就假装没看到

 

  • 安装erl

  make install

ll /usr/local/erlang/bin
  • 添加并刷新环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
source /etc/profile
  • 检查是否安装成功
erl

  如果出现下图所示版本号则表示安装成功

  

  在里面输入halt().命令退出来(那个点号别忘记)

  

 2.安装RabbitMQ

rabbitmq下载地址:

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.5

  • 下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz
  • 由于是tar.xz格式的所以需要用到xz,没有的话就先安装 
yum install -y xz
  • 第一次解压
/bin/xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz
  • 第二次解压
tar -zxvf rabbitmq-server-generic-unix-3.8.5.tar
  • 改名
mv rabbitmq_server-3.8.5  rabbitmq
  • 配置环境变量
echo 'export PATH=$PATH:/home/rabbitmq/sbin' >> /etc/profile
  • 刷新环境变量
source /etc/profile
  • 创建配置目录
mkdir /etc/rabbitmq

 3.启动、停止、查看状态

  • 启动:
rabbitmq-server -detached
  • 停止:
rabbitmqctl stop
  • 查看状态:
rabbitmqctl status

 4.开启RabbitMQ插件(web管理)

  • 开启web插件
rabbitmq-plugins enable rabbitmq_management
  • 访问:http://127.0.0.1:15672/

默认账号密码:guest guest(这个账号只允许本机访问)

5.用户管理

  • 查看所有用户
rabbitmqctl list_users
  • 添加一个用户
rabbitmqctl add_user raoyulu 123456
  • 配置权限
rabbitmqctl set_permissions -p "/" raoyulu ".*" ".*" ".*"
  • 查看用户权限
rabbitmqctl list_user_permissions raoyulu
  • 设置tag
rabbitmqctl set_user_tags raoyulu administrator
  • 删除用户(安全起见,删除默认用户)
rabbitmqctl delete_user guest

6.登陆

配置好用户之后重启一下rabbit

然后就可以用新账号进行登陆

 

六:使用docker容器安装rabbitmq

1.先在linux系统安装docker服务

  安装教程链接地址:https://blog.csdn.net/gfk3009/article/details/104460438

2.拉取RabbitMQ镜像文件

  执行命令:docker pull rabbitmq:management

  

 

 3.运行rabbitmq

  执行命令:docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname RabbitMQ rabbitmq:management  ##启动容器

  docker ps -a  ## 查看容器是否启动成功

 

 

 最后访问客户端确定是否启动成功

posted @ 2020-07-24 17:39  MR饶  阅读(352)  评论(0编辑  收藏  举报