当前位置: 首页 > news >正文

RabbitMQ最新版本4.0.2在Windows下的安装及使用

RabbitMQ 是一个开源的消息代理和队列服务器,提供可靠的消息传递和队列服务。它支持多种消息协议,包括 AMQP、STOMP、MQTT 等。本文将详细介绍如何在 Windows 系统上安装和使用最新版本的 RabbitMQ 4.0.2。

前言

RabbitMQ 是用 Erlang 语言开发的 AMQP(高级消息队列协议)的开源实现,广泛应用于消息队列、消息中间件等领域。它支持多种消息传递协议和多种客户端库,能够有效处理高并发的消息传递需求。 RabbitMQ 主要实现了 AMQP(高级消息队列协议)1.0 和 0-9-1 版本。然而,RabbitMQ 并不仅仅局限于 AMQP 协议,它还支持多种其他协议和扩展,使其能够适应更广泛的应用场景。

以下是一些 RabbitMQ 支持的协议和扩展:

1. AMQP 0-9-1

标准协议:RabbitMQ 最广泛使用的协议版本是 AMQP 0-9-1。这个版本的协议已经被许多客户端库支持,适用于大多数消息队列应用场景。

2. MQTT (Message Queuing Telemetry Transport)

轻量级协议:MQTT 是一种轻量级的消息协议,特别适合于物联网(IoT)设备和移动设备。RabbitMQ 通过插件支持 MQTT 协议,允许这些设备与 RabbitMQ 服务器进行通信。

3. STOMP (Simple Text Oriented Messaging Protocol)

简单文本协议:STOMP 是一种简单的文本消息协议,适用于多种编程语言和平台。RabbitMQ 通过插件支持 STOMP 协议,使得非 AMQP 客户端也可以与 RabbitMQ 交互。

4. Web Sockets

Web 通信:RabbitMQ 通过插件支持 Web Sockets,允许浏览器直接与 RabbitMQ 服务器进行实时通信。这使得 Web 应用可以实时接收消息。

5. RMQ (RabbitMQ Management HTTP API)

管理接口:RabbitMQ 提供了一个基于 HTTP 的管理 API,允许你通过 HTTP 请求管理 RabbitMQ 服务器,包括创建和删除队列、交换机、用户等操作。

6. MQTT over WebSockets

组合协议:RabbitMQ 支持通过 WebSockets 传输 MQTT 消息,使得 Web 应用可以直接使用 MQTT 协议与 RabbitMQ 通信。

7. AMQP 1.0

最新标准:虽然 AMQP 1.0 是最新的标准版本,但在实际应用中,AMQP 0-9-1 仍然更为常见。RabbitMQ 也支持 AMQP 1.0,但需要启用相应的插件。

erlang环境配置

RabbitMQ 是使用 Erlang 语言编写的,因此需要先安装 Erlang。RabbitMQ 4.0.2 需要 Erlang 26或更高版本。

安装erlang并配置环境变量

ERLANG_HOME   路径:D:\Program Files\Erlang OTP

双击系统变量path,点击“新建”,将%ERLANG_HOME%\bin加入到path中。

%ERLANG_HOME%\bin

验证erlang是否安装成功
win+R键,输入cmd,再输入erl,看到erlang版本号就说明erlang安装成功了。 

RabbitMQ 

 RabbitMQ最新版本下载:https://www.rabbitmq.com/docs/install-windows#installer

安装RabbitMQ

2.1 双击下载后的.exe文件,安装过程与erlang的安装过程相同。
2.2 安装RabbitMQ-Plugins
打开命令行cd,输入RabbitMQ的sbin目录。

然后输入以下命令进行安装

./rabbitmq-plugins enable rabbitmq_management

验证rabbitmq是否安装成功

输入 以下命令:

rabbitmqctl status

 

从提供的错误信息来看,问题主要集中在 Erlang 分布式通信失败上。具体来说,rabbitmqctl 工具能够连接到 epmd,并且 epmd 报告了正确的端口,但 Erlang 分布式通信未能成功建立。这通常是由于 Erlang Cookie 不匹配或主机名不一致导致的。 

解决办法

停止 RabbitMQ 服务(如果已启动)

检查 Erlang Cookie

确保 rabbitmqctl 工具和 RabbitMQ 服务器使用相同的 Erlang Cookie。

Erlang Cookie 文件通常位于:

Linux: /var/lib/rabbitmq/.erlang.cookie

Windows: %APPDATA%\RabbitMQ\.erlang.cookie

打开这两个文件,确保它们的内容完全相同。如果内容不同,请将它们同步。

比较下面两个文件夹下的.erlang.cookie文件内容,后来修改其中一个文件的内容,使两个文件内容一样。再次执行命令rabbitmqctl status,成功

C:\Windows\System32\config\systemprofile\.erlang.cookie
C:\User\{{电脑用户名}}\.erlang.cookie

再次查看服务状态

rabbitmqctl status

 打开浏览器,地址栏输入mq访问地址,即可看到管理界面的登陆页

http://127.0.0.1:15672 

输入用户名和密码,都为guest 进入主界面:

开启支持stomp协议

RabbitMQ 中启用对 STOMP (Simple Text Oriented Messaging Protocol) 的支持,你需要启用 rabbitmq_stomp 插件。

以下是详细的步骤:

启用 STOMP 插件: 打开命令行,进入 RabbitMQ 的 sbin 目录,然后执行以下命令来启用 STOMP 插件:

rabbitmq-plugins enable rabbitmq_stomp
rabbitmq-plugins enable rabbitmq_web_stomp

配置 STOMP: 你可以通过修改 RabbitMQ 的配置文件来设置 STOMP 连接的相关参数,通常这个文件是 rabbitmq.conf 或 advanced.config。在其中可以设置 STOMP 监听的端口等。

例如,如果你希望 STOMP 监听默认端口61613,可以在 rabbitmq.conf 中添加:

stomp.port = 61613

重启 RabbitMQ: 修改配置后,需要重启 RabbitMQ 服务以使更改生效。可以使用以下命令:

rabbitmqctl stop
rabbitmq-server start

验证 STOMP 是否启用: 可以通过使用 STOMP 客户端连接到 RabbitMQ 服务器来验证。确保可以在端口 61613 上成功连接。

完成以上步骤后,你的 RabbitMQ 应该已经能够支持 STOMP 协议。

可以使用以下命令验证 rabbitmq_stomp 插件是否已成功启用:

./rabbitmq-plugins list

其他资源

Otp 26.2.1 - Erlang/OTP

Release RabbitMQ 4.0.2 · rabbitmq/rabbitmq-server · GitHub

STOMP Over WebSocket

https://www.rabbitmq.com/docs/install-windows#configure

windows环境下安装RabbitMQ(超详细)_windows安装rabbitmq-CSDN博客

相关文章:

RabbitMQ最新版本4.0.2在Windows下的安装及使用

RabbitMQ 是一个开源的消息代理和队列服务器,提供可靠的消息传递和队列服务。它支持多种消息协议,包括 AMQP、STOMP、MQTT 等。本文将详细介绍如何在 Windows 系统上安装和使用最新版本的 RabbitMQ 4.0.2。 前言 RabbitMQ 是用 Erlang 语言开发的 AMQP&…...

东方博宜1180 - 数字出现次数

问题描述 有 50 个数( 0∼19),求这 50个数中相同数字出现的最多次数为几次? 输入 50 个数字。 输出 1 个数字(即相同数字出现的最多次数)。 样例 输入 1 10 2 0 15 8 12 7 0 3 15 0 15 18 16 7 17 16 9 …...

LeetCode: 3274. 检查棋盘方格颜色是否相同

一、题目 给你两个字符串 coordinate1 和 coordinate2,代表 8 x 8 国际象棋棋盘上的两个方格的坐标。   以下是棋盘的参考图。   如果这两个方格颜色相同,返回 true,否则返回 false。   坐标总是表示有效的棋盘方格。坐标的格式总是先…...

datax编译并测试

mvn -U clean package assembly:assembly -Dmaven.test.skiptrue 参看:DataX导数的坑_datax插件初始化错误, 该问题通常是由于datax安装错误引起,请联系您的运维解决-CSDN博客 两边表结构先创建好: (base) [rootlnpg bin]# pwd /db/DataX-datax_v20230…...

2-133 基于matlab的粒子群算法PSO优化BP神经网络

基于matlab的粒子群算法PSO优化BP神经网络,BP神经网络算法采用梯度下降算法,以输出误差平方最小为目标,采用误差反向传播,训练网络节点权值和偏置值,得到训练模型。BP神经网络的结构(层数、每层节点个数)较复杂时&…...

复盘秋招22场面试(四)形势重新评估与后续措施

连续好多天睡不着觉,经常晚上起来好几次,到现在还是没offer。之前有个校友在抖音留言说我能收到这么多面试说明简历没问题,这么多一面挂,说明我技术面有问题。确实有一些是kpi面,但是我复盘之后我发现也没有那么多kpi面…...

揭开C++ STL的神秘面纱之string:提升编程效率的秘密武器

目录 🚀0.前言 🚈1.string 构造函数 🚝1.1string构造函数 🚝1.2string拷贝构造函数 🚈2.string类的使用 🚝2.1.查询元素个数或空间 返回字符串中有效字符的个数:size lenth 返回字符串目…...

用人工智能,应该怎么掏钱?

人工智能(AI)服务的发展正快速改变企业和开发者的工作方式,不仅提供了强大的数据分析和预测能力,还涵盖了从自然语言处理到图像识别的广泛功能。然而,理解AI服务的支付模式对成本控制和合理资源分配至关重要&#xff0…...

【Axure高保真原型】移动案例

今天和大家分享多个常用的移动案例的原型模板,包括轮盘滑动控制元件移动、页面按钮控制元件移动、鼠标单击控制元件移动、元件跟随鼠标移动、鼠标拖动控制元件移动、键盘方向键控制元件移动,具体效果可以点击下方视频观看或打开下方预览地址查看哦 【原…...

Bytebase 3.0.0 - AI 助手全面升级

🚀 新功能 SQL 编辑器里的 AI 助手:支持将自然语言转换成 SQL 语句,解释 SQL 代码,还能帮助发现潜在问题。 支持 SQL Server DML 语句一键回滚。支持 MariaDB 的在线大表变更。新的 SQL 审核规则: 要求为 MySQL 设置 …...

php基础:数据类型、常量、字符串

语法补充: 每句必须以;结尾 echo:能输出一个以上的字符串,英文逗号隔开 print:只能输出一个字符串并返回1 1.数据类型 php可以自动识别数据类型。 php有5种数据类型:String(字符串&#xf…...

Discuz发布原创AI帖子内容生成:起尔 | AI原创帖子内容生成插件开发定制

Discuz发布原创AI帖子内容生成:起尔 | AI原创帖子内容生成插件开发定制 在当今互联网快速发展的时代,内容创作成为了网站运营、社交媒体管理和个人博客维护不可或缺的一部分。然而,高质量内容的创作往往耗时耗力,特别是对于需要频…...

el-table在某些条件下禁止选中

el-table在某些条件下禁止选中 废话不多说直接上代码 HTML部分 <el-table v-loading"loading" :data"wmsShipmentOrderList" ref"multipleTable" select"handleSelect" selection-change"handleSelectionChange">&…...

深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南

文章目录 引言GET 方法POST 方法PUT 方法DELETE 方法小结适用场景与特点总结最佳实践 在 API 设计中的重要性 引言 HTTP 协议的背景&#xff1a;介绍 HTTP&#xff08;超文本传输协议&#xff09;作为互联网的基础协议&#xff0c;自 1991 年发布以来&#xff0c;成为客户端和…...

深度学习:元学习(Meta-Learning)详解

元学习&#xff08;Meta-Learning&#xff09;详解 元学习&#xff0c;也称为“学会学习”&#xff0c;是机器学习中的一个重要子领域&#xff0c;旨在开发能够快速适应新任务或环境的模型&#xff0c;即使这些任务的可用数据非常有限。元学习的核心思想是通过经验学习如何学习…...

uniapp展示本地pdf + 自定义标题

概要 本文主要讲述uniapp打包的Android项目如何展示本地的PDF文件&#xff0c;并设置标题 需求分析 1、因为是打包的Android项目展示本地的PDF文件&#xff0c;首先需要拿到这个本地的PDF文件路径 2、如何在uniapp的vue页面中展示PDF&#xff0c;因为没有直接展示PDF文件的…...

国标GB28181设备管理软件EasyGBS国标GB28181-2016平台更换SQLite数据库的步骤

在当今数字化、智能化的时代&#xff0c;视频监控系统已成为各行各业不可或缺的一部分。国标GB28181设备管理软件EasyGBS&#xff0c;作为一款功能强大的国标视频云服务平台&#xff0c;凭借其广泛的应用场景和卓越的性能&#xff0c;在智慧城市、智慧园区、智慧交通、智慧医疗…...

C++基础与实用技巧第三节:内存管理与性能优化

第二章&#xff1a;C基础与实用技巧 第三节&#xff1a;内存管理与性能优化 1. 动态内存的管理策略与技巧 动态内存管理是C编程的核心部分之一&#xff0c;合理管理内存可以极大提高程序的性能和稳定性。在C中&#xff0c;动态内存的分配和释放通常使用new和delete运算符&am…...

【移动应用开发】界面设计(二)实现水果列表页面

续上一篇博客 【移动应用开发】界面设计&#xff08;一&#xff09;实现登录页面-CSDN博客 目录 一、采用ViewBinding实现一个RecyclerView 1.1 在app/build.gradle中添加recyclerview依赖&#xff0c;并打开viewBinding &#xff08;1&#xff09;在app/build.gradle中添加…...

基于Multisim的四人智力竞赛抢答器设计与仿真

1&#xff09;设计任务 设计一台可供 4 名选手参加比赛的智力竞赛抢答器。 用数字显示抢答倒计时间&#xff0c;由“9”倒计到“0”时&#xff0c;无人抢答&#xff0c;蜂鸣器连续响 1 秒。选手抢答时&#xff0c;数码显示选手组号&#xff0c;同时蜂鸣器响 1 秒&#xff0c;倒…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...