Windows RabbitMQ 安装&配置

377 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

        近期要实现一个图片异步上传的需求,需要用到RabbitMQ,辅助客户端完成对高并发请求的处理。

一、安装Erlang

  1. 由于RabbitMQ服务器是用Erlang语言编写,所以我们需要先安装Erlang环境,本文使用的版本是erl-24.1

  2. 下载地址: github.com/erlang/otp/… 在这里插入图片描述

  3. 下载完成后,双击exe完成安装。记录安装目录,默认路径:C:\Program Files\erl-24.1

  4. 配置环境变量 路径:计算机--右键--属性--高级系统设置--环境变量--系统变量 step 1 新建:         变量名:ERLANG_HOME         变量值:C:\Program Files\erl-24.1 在这里插入图片描述 step 2 在系统变量栏找到Path         新建值%ERLANG_HOME%\bin 在这里插入图片描述

  5. 检测安装状态         Win+R输入cmd,打开命令提示符,输入erl,如下,Erlang安装结束。 在这里插入图片描述

二、安装RabbitMQ

  1. 本文使用的版本为rabbitmq-server-windows-3.9.8 下载地址:github.com/rabbitmq/ra…
  2. 解压到任意目录下,本文解压地址是 C:\Program Files
  3. 配置环境变量 方式同上,在系统变量栏 step 1 新建:         变量名:RABBITMQ_SERVER         变量值:C:\Program Files\rabbitmq_server-3.9.8 step 2 在系统变量栏找到Path         新建值%RABBITMQ_SERVER%\sbin 在这里插入图片描述
  4. 安装页面管理工具 4.1 CMD命令进入sbin目录, 或直接在该目录内Shift+右键-->在此处打开命令窗口 在这里插入图片描述 4.2 输入 rabbitmq-plugins.bat enable rabbitmq_management 在这里插入图片描述
  5. 启动服务         命令窗输入rabbitmq-server.bat,或直接双节打开rabbitmq-server.bat 在这里插入图片描述
  6. 测试 浏览器输入 http://localhost:15672/ ,username和password都输入 guest,登录。 在这里插入图片描述 在这里插入图片描述

三、配置账户

默认情况下,如果只有guest账户,RabbitMQ是不允许用户通过远程ip访问管理页面的。因此需要配置自定义账户,才能通过远程方式(即IP+端口号)访问RabbitMQ。

  1. 在Admin栏右侧,点击Virtual Host新增virtual host(虚拟消息服务器)。每个VirtualHost相当于一个相对独立的RabbitMQ服务器;每个VirtualHost之间相互隔离,互不干扰。 在这里插入图片描述
  2. 在Admin栏右侧,点击User新增用户,(新创建的用户默认是没有任何权限的) 在这里插入图片描述
  3. 为新增账号添加权限,点击新增的用户名即可编辑权限 在这里插入图片描述 此处权限设置,表明该用户具有访问列表中virtual host的权限 在这里插入图片描述
  4. 分配权限后,guest账户就不再需要了,删除即可,点击guest用户名 在这里插入图片描述 在这里插入图片描述
  5. 删除guest后,RabbitMQ会检测到当前guest账户登录失效,有弹窗提示输入账号密码,填入新创建的账号信息即可,然后退出guest账号 在这里插入图片描述
  6. 远程访问,并用新账号登录在这里插入图片描述
  7. 如果登录失败可以尝试以下方案 方案一:将新增账户类型设置为Administrator,CMD命令,在sbin目录下输入         rabbitmqctl set_user_tags admin administrator
    设置后重试登录。(admin为刚才新增的账户名) 方案二:为新增账户添加默认virtual host的权限         rabbitmqctl set_permissions -p / admin '.' '.' '.*' 设置后重试登录。(/ 为默认virtual host, admin为新增账号) 方案三:新建账号,并为其分配权限         rabbitmqctl add_user guest1 123456         (账号guest1 密码123456)         rabbitmqctl set_user_tags guest1 administrator        (设置账号类型为administrator)         rabbitmqctl set_permissions -p / guest1 '.' '.' '.*'        (为guest1添加权限) 设置后使用guest1重试登录。

四、配置队列

  1. 创建队列 Virtual host :当前队列输入那个消息服务器 Type:队列类型默认选择Classic(经典款) Name:队列名 Durability:Durable(默认,持久化),另一个是Transient,瞬态。持久化消息存储在磁盘,瞬态消息存储在内存中,大部分情况都选择持久化消息方式存储 Auto delete:No,关闭队列自动删除。否则当至少有一个消费者连接到队列时,该队列将删除自身,并将所有消费者的连接断开。(有点像滴滴司机抢单) Arguments:参考网上其他博主的讲解,不在过多阐述 在这里插入图片描述

--------------------------------------------------------------------以下操作非必要--------------------------------------------------------------- 感兴趣可以先了解一下RabbitMQ中 exchange、route、queue的关系

  1. 创建Exchanges,这里Type选择direct,要求routing key必须完全一致才能访问队列,其他都能网上查到,不再赘述在这里插入图片描述4. 配置自定义的Exchange,配置好后可以通过点击队列名,查看Binds情况在这里插入图片描述在这里插入图片描述