Windows 下安装 RabbitMQ 服务器及基本配置

简介: Windows 下安装 RabbitMQ 服务器及基本配置

Windows 下安装 RabbitMQ 服务器及基本配置


RabbitMQ 是一个在 AMQP 协议标准基础上完整的,可复用的企业消息系统。它遵循 Mozilla Public License 开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在 Erlang OTP 平台上。

安装 RabbitMQ 服务器必须首先安装 Erlang 运行环境。

安装 Erlang

安装 Erlang 时要注意安装的 RabbityMQ 所依赖的 Erlang 版本,根据 RabbitMQ 的要求选择一个版本,这里我要安装的 RabbitMQ 的版本是 3.7.7 ,他依赖的Erlang版本范围是19.3.6.4 到 21.0.x,因此我选择版本是OTP 20.3. Erlang下载地址:https://www.erlang.org/downloads。下载Erlang安装包后直接安装就可以了。

设置 ERLANG_HOME 环境变量

注意:如果之前安装了 Erlang的其他版本,需要卸载后在进行重新安装和设置。

在开始菜单查找 Erlang,点击启动 打开如下界面,那么 Erlang 就安装成功了。接下来就安装 RabbitMQ。

安装 RabbitMQ

可以在 RabbitMQ 的官方网站下载最新版本的 RabbitMQ 服务器安装程序,RabbitMQ 下载地址:https://www.rabbitmq.com/install-windows.html 然后点击默认安装。

RabbitMQ 安装好后是作为 windows service 运行在后台。

设置 RabbitMQ 环境变量

RabbitMQ 安装好后在开始菜单输入 rabbitmq 会看到三个菜单:

这里的三个菜单是提供控制 Windows service 的命令,为了能够在任意 Windows 命令窗口上操控RabbitMQ 服务需要在系统里加一个环境变量并且配置在系统的 PHTH 环境变量中。

首先添加一个 RABBITQM_SERVER 变量:

然后在系统的 path 变量中配置如下:

这样就可以在 windows administrator 启动的 CMD 窗口操控 RabbitMQ 服务了。不需要每次都定位到:

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.7\sbin>

安装 rabbitmq_management

我们用命令查看一下 RabbtitMQ 的所有插件:

rabbitmq-plugins list

看到 RabbtitMQ 罗列出来了很多插件

我们用下列命令安装 rabbitmq_management 插件,这款插件是可以可视化的方式查看 RabbitMQ 服务器实例的状态,以及操控 RabbitMQ 服务器。

rabbitmq-plugins enable rabbitmq_management

运行完命令后,看到下图表示安装成功了。

现在我们在浏览器中输入:http://localhost:15672 可以看到一个登录界面:

这里可以使用默认账号 guest / guest 登录后的界面如下:

在浏览器中输入 http://localhost:15672/api/ 就可以看到 RabbitMQ Management HTTP API 文档,如下图:

这样就可以查看 RabbitMQ server 实例状态的相关信息了。

管理 rabbitmq_management 的用户

用命令 rabbitmqctl list_users 查看一下现 rabbitmq_management 注册用户

发现现在只有一个用户 guest,并且它的 tag 是 administrator.

那么在命令行下创建一个用户,创建用户的命令合是:

rabbitmqctl add_user [username] [password]

现在创建一个 username = rabbit1 password = rabbit1 的用户, 命令如下:

rabbitmqctl add_user rabbit1 rabbit1

创建成功了:

现在看下有多少用户,跑一下命令:

rabbitmqctl list_users

发现用户列表里多了一个用户 rabbit1, 但是 tag 是空的。使用命令给 rabbit 设置 tag,设置 tag 的命令格式:

rabbitmqctl set_user_tag [tag1] [tag2] …

一次可以给一个用户设置多个 tag,也可以设置一个

现在 rabbit1 有两个 tag 了一个是 administrator ,一个是 none.

有5个 tag 可供选择,分别是:administrator ,monitoring,policymaker,management 和 none,其实这里的 tag 代表的是权限,administrator 是最高权限,none 表示不能访问,这里 administrator 和 none 的组合,权限应该是向高看齐,忽略 none,用的是 administrator 的权限。我们用 rabbit1 / rabbit1 登录 rabbitmq_management。

其实有了 rabbitmq_management 这个可视化插件,很多事情都可以在这个插件里干,包括创建用户,创建交换机(Exchange)和创建队列(Queque)。

关于 Rabbit 的在 windows 下的基本配置就告一段落,关于更多的更高级的配置,可以参考官网,有了 rabbitmq_management 插件确实方便了不少。下面就开始创建客户端进行测试了。

测试

创建两个 .Net Core Console 类型的应用程序,一个用于发送消息,一个用于接收消息。

  1. Send 端代码:
using System;
using System.Text;
using RabbitMQ.Client;
namespace Q.Demo.Send
{
  class Program
    {
      static void Main(string[] args)
        {
          var factory = new ConnectionFactory() { HostName = "localhost" };
      using (var connection = factory.CreateConnection())
      using (var channel = connection.CreateModel())
      {
        channel.QueueDeclare(queue: "hello",
                              durable: false,
                              exclusive: false,
                              autoDelete: false,
                              arguments: null);
        while (true)
        {
          var input = Console.ReadLine();
          string message = input;
          var body = Encoding.UTF8.GetBytes(message);
          channel.BasicPublish(exchange: "",
                                routingKey: "hello",
                                basicProperties: null,
                                body: body);
          Console.WriteLine(" [x] Sent {0}", message);
        }
      }
      Console.WriteLine(" Press [enter] to exit.");
      Console.ReadLine();
    }
  }
}

Receive端代码:

using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
namespace Q.Demo.Receive
{
    class Program
    {
        static void Main(string[] args)
        {
            var factory = new ConnectionFactory() { HostName = "localhost" };
            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: "hello",
                    durable: false,
                    exclusive: false,
                    autoDelete: false,
                    arguments: null);
                var consumer = new EventingBasicConsumer(channel);
                consumer.Received += (model, ea) =>
                {
                    var body = ea.Body;
                    var message = Encoding.UTF8.GetString(body);
                    Console.WriteLine(" [x] Received {0}", message);
                };
                channel.BasicConsume(queue: "hello",
                    autoAck: true,
                    consumer: consumer);
                Console.WriteLine(" Press [enter] to exit.");
                Console.ReadLine();
            }
        }
    }
}

运行输入消息效果如下:

总结

关于 RabbitMQ 在 windows 下的安装和基本设置步骤:

安装对应版本的 Erlang 并设置环境变量

安装 RabbitMQ

设置环境变量

安装插件 rabbitmq_management

有了插件 rabbitmq_management 很多事情就可以在这个可视化插件中来完成了。

相关实践学习
快速体验阿里云云消息队列RocketMQ版
本实验将带您快速体验使用云消息队列RocketMQ版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
Ubuntu Linux 网络安全
Linux服务器之Ubuntu的安装与配置
Ubuntu Desktop是目前最成功、最流行的图形界面的Linux发行版;而Ubuntu Server也在服务器端市场占据了较大的份额。今天为大家详细介绍了Ubuntu Server的安装与配置,希望对你能有所帮助。关于VMware、VirtualBox等虚拟化软件的使用,朱哥还会在后续的文章中为大家详细介绍,敬请关注!
|
10月前
|
Shell Linux 网络安全
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
1525 3
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
|
11月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
505 18
|
11月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
711 15
|
11月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
1225 13
|
12月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
Ubuntu Linux
如何在 Ubuntu 服务器上安装桌面环境(GUI)
如果你有任何问题,请在评论区留言。你会在服务器上使用 GUI 吗?参照本文后你遇到了什么问题吗?
2419 0
|
消息中间件 数据管理 Serverless
阿里云消息队列 Apache RocketMQ 创新论文入选顶会 ACM FSE 2025
阿里云消息团队基于 Apache RocketMQ 构建 Serverless 消息系统,适配多种主流消息协议(如 RabbitMQ、MQTT 和 Kafka),成功解决了传统中间件在可伸缩性、成本及元数据管理等方面的难题,并据此实现 ApsaraMQ 全系列产品 Serverless 化,助力企业提效降本。
|
11月前
|
消息中间件 Java Kafka
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
本文深入解析了 Kafka 和 RabbitMQ 两大主流消息队列在 Spring 微服务中的应用与对比。内容涵盖消息队列的基本原理、Kafka 与 RabbitMQ 的核心概念、各自优势及典型用例,并结合 Spring 生态的集成方式,帮助开发者根据实际需求选择合适的消息中间件,提升系统解耦、可扩展性与可靠性。
716 1
消息队列比较:Spring 微服务中的 Kafka 与 RabbitMQ
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
1153 103