消息队列RabbitMQ Windows版的安装

1.什么是MQ

    消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。
    其主要用途:不同进程Process/线程Thread之间通信。

消息队列产生的原因:

    1.不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;

   2. 不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列;

一言以蔽之,消息队列产生于实际的生产环境,为了降低各个进程之间的耦合程度,实现高可用性,从而MQ便诞生了。

    MQ框架非常之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka,以及阿里开源的RocketMQ。其中RabbitMQ的优点有以下方面:

RabbitMq是一个开源的 AMQP 实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 AJAX支持主流的操作系统如Linux、Windows和MacOX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
下面进入正文:

1.搭建RabbitMQ环境,先到以下地址下载并安装Erlanng:

http://erlang.org/download/ 

如下图:

从上面可以看到,最新版本已经进行到22.0,考虑到最新版本的稳定性,我个人选择的是otp_win64_21.3版本,因为我安装的RabbitMQ是目前最新版的3.7.17,这个版本的对Eclang要求比较高,如果安装较低版本的Erlang,安装RabbitMQ将会提示版本较旧,请安装新版本的Erlang。我之前安装Erlang版本是otp_win64_17.3,就遇到这种情况,更换为otp_win64_21.3就可以正常安装了,安装过程比较简单,执行默认即可,当然个人建议不要安装在C盘,可以自定义安装路径。

安装好Erlang以后,可以到以下路径下载RabbitMQ;

https://www.rabbitmq.com/install-windows.html

同上Erlang的安装,采用默认安装即可。

安装完成以后,在桌面左下角开始菜单中搜索rabbitMQ,就会出来我们刚安装好的RabbitMQ程序了,如图:

点击红色箭头所指程序,就会打开RabbitMQ的命令行窗口,输入以下命令:rabbitmq-plugins enable rabbitmq_management,

这样就启动了管理工具,可以试一下命令:
停止:net stop RabbitMQ
启动:net start RabbitMQ

注:RabbitMQ采用的自启动,下次开机就会启动,因此不需要再单独使用net start RabbitMQ命令去启动

3、然后在浏览器中输入地址查看:http://127.0.0.1:15672/,就会出来RabbitMQ的登录界面了,

RabbitMQ的默认账号和密码均为guest,下面是登录成功进入的界面:

最后配上SpringBoot中使用RabbitMQ的配置信息:

spring.application.name=spring-boot-rabbitmq

spring.rabbitmq.host=127.0.0.1
sprng.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabitmq.password=guest

需要注意的是,在浏览器中访问RabbitMQ的端口号为15672,而项目中使用RabbitMQ的端口号为5672。如果项目中使用RabbitMQ,启动后报以下异常,

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect

可能的原因有:

1.未安装好RabbitMQ;

2.RabbitMQ和Erlang版本不匹配;

3.项目中关于的RabbitMQ的配置有误。

发布了137 篇原创文章 · 获赞 28 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/shenxiaomo1688/article/details/100531710
今日推荐