SpringBoot整合消息中间件 RabbitMQ 第 1 篇 —— RabbitMQ 在 Windows 下安装(包含Erlang安装)

 

RabbitMQ是一个由 Erlang 语言开发的开源消息队列系统(所以必须在 Erlang 环境才可以运行)。基于AMQP协议(Advanced Message Queuing Protocol)来实现。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全。AMQP协议更多用在企业系统内,对数据一致性稳定性可靠性要求很高的场景,其次是对性能和吞吐量的要求。

引用消息队列的有点在于:解耦、异步、削峰。缺点是系统复杂性高,会产生数据不一致的问题。

几种消息消息中间件的对比

1、RocketMQ:

淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件。

优点:   模型简单,接口易用(JMS   的接口很多场合并不太实用)。在阿里大规模应用。目前支付宝中的余额宝等新兴产品均使用rocketmq。集群规模大概在50台左右,单日处理消息上百亿;性能非常好,可以大量堆积消息在broker 中;支持多种消费,包括集群消费、广播消费等。开发度较活跃,版本更新很快。
 缺点:没有在 mq 核心中去实现JMS等接口。

2、Redis:

是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。


3、Kafka:

Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。

Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。

4、RabbitMQ:

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

对比:RabbitMQ 比 Kafka 可靠,Kafka 更适合IO高吞吐的处理,比如ELK日志收集。

Kafka具有高的吞吐量,内部采用消息的批量处理,zero-copy机制,数据的存储和获取是本地磁盘顺序批量操作,具有O(1)的复杂度,消息处理的效率很高。

RabbitMQ在吞吐量方面稍逊于Kafka,RabbitMQ支持对消息的可靠的传递,支持事务,不支持批量的操作。
 

总结:

ActiveMQ:遵循 JMS 规范,安装方便。但有可能会丢失消息,适合中小企业,不适合几千个队列的应用。支持 AMQP、OpenWire 等协议。

RabbitMQ:基于 Erlang 语言开发,难度较大,不支持动态扩展。最初是在金融业得到广泛使用,适合对稳定性较高的企业级应用。

Kafka:依赖于 Zookeeper,可动态扩展节点,具有高性能、高吞吐量。但不支持标准的消息协议,不利于平台的迁移。主要应用于大数据日志处理、实时性、可靠性要求较低的场景(少量数据丢失)。

 

 

RabbitMQ 运作原理

1、Server:Broker,接受client连接,实现AMQP实体服务  

2、Connection:应用程序和Broker的网络连接  

3、Channel:网络信道,读写都是在Channel中进行(NIO的概念),包括对MQ进行的一些操作(例如clear queue等)都是在Channel中进行,客户端可建立多个Channel,每个Channel代表一个会话任务  

4、Message:由properties(有消息优先级、延迟等特性)和Body(消息内容)组成  

5、Virtual host:用于消息隔离(类似Redis 16个db这种概念),最上层的消息路由,一个包含若干Exchange和Queue,同一个里面Exchange和Queue的名称不能存在相同的。  

6、Exchange:Routing and Filter  

7、Binding:把Exchange和Queue进行Binding  

8、Routing key:路由规则  

9、Queue:物理上存储消息

 

RabbitMQ 在 Windows 下的安装

1、先安装 Erlang 语言环境

我们先到 RabbitMQ 官网看到 RabbitMQ 和 Erlang 各个版本的要求:https://www.rabbitmq.com/which-erlang.html

RabbitMQ 3.8.9 之后的版本,要求 Erlang 最低版本是22.3,最高版本是23.X。

那我们就下载最新版的 RabbitMQ 客户端 3.8.14 和 最新版的 Erlang 23.3 吧。

先下载 RabbitMQ 3.8.14,地址:https://www.rabbitmq.com/install-windows.html  大约 17M

如果下载失败,可以点击此链接下载:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14.exe

这里提供百度网盘下载地址:https://pan.baidu.com/s/19hDmObzwGQw67eYUGtqSEw  提取码:9c52

 

 

然后下载 Erlang:https://www.erlang.org/downloads   大约105M

如果下载失败,可以点击此链接:http://erlang.org/download/otp_win64_23.3.exe

这里提供百度网盘地址:https://pan.baidu.com/s/1AlH8X_JkDe7XLROVioCusw 提取码:38e2

 

 

注意: RabbitMQ 的安装依赖于Erlang 环境,所以需要先安装Erlang。

安装 Erlang

安装 Erlang 很简单,常规操作就行。这里贴图。

选择安装路径,这个路径待会需要配置到环境变量

 

我们先别【重新启动】,先点击【关闭】。让 Erlang 安装好后重启电脑即可。

接下来配置环境变量。

打开电脑的环境变量,新增环境变量ERLANG_HOME 为 Erlang 的安装路径,然后在系统的 Path 目录下增加 %ERLANG_HOME%\bin 即可。具体步骤如图:

在新建对话框中输入【ERLANG_HOME】,变量值为 Erlang 的安装路径。

在系统变量的 Path 中,增加 Erlang 的bin目录。

以下截图是 Windows10 的页面。如果是 Windows7 请在目录后追加英文分号【;】,然后再输入 Erlang 的bin目录。

 

验证:我们打开具有管理员权限的 CMD 命令行。输入 erl 回车。会看到 Erlang 安装好了,并且有版本号。

如果不知道如何打开具有管理员权限的 CMD 命令行,请查看我的博客:https://blog.csdn.net/BiandanLoveyou/article/details/115339905

 

安装 RabbitMQ 服务

也是简单的点击下一步。如果没有成功安装 Erlang 语言环境变量,是无法安装 RabbitMQ 服务器的。

 

 

OK,安装完毕!

 

我们如何启动 RabbitMQ 服务呢?

首先我们在菜单栏里输入 RabbitMQ Service,找到默认的安装路径,如图。我们通常需要 start、stop 两个功能。可以设置到桌面快捷方式,方便。

默认的路径是:C:\Users\你的本机名字\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\RabbitMQ Server

 

 

启动 RabbitMQ 服务后,我们输入以下地址登录:http://127.0.0.1:15672/   默认的用户名和密码都是:guest。用户可以在后台自己创建新的账号。

 

登录成功后的页面如下:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值