1、读这篇文章你会学到什么?咳,标题已经说的明明白白了
也许你会问为啥是Windows环境下的配置,而不是linux环境下的配置?
因为有些开发者,有时候是线下自己跟自己玩,并且是在Windows环境下玩,所以Windows环境下RabbitMQ的安装与配置
很有必要。
2、预告,预告!!下一篇文章将会介绍RabbitMQ在Linux环境下的安装与配置
3、引申阅读:什么是MQ
消息队列(Message Queue)简称MQ,它是应用程序与应用程序之间通信的方法。本质是个队列,遵循FIFO先入先出原
则,队列中存放的内容是message。
用途:不同进程Process/线程Thread之间通信。
产生背景:
不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消
息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列
不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进
程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消
息队列来传递,单独修改某一个进程,不会影响另一个;
常见的MQ框架有哪些?
还真不少,比较流行的有kafka、RabbitMq、ActiveMq、ZeroMq,以及阿里开源的RocketMQ
4、来啊,听一个关于消息队列的故事(消息队列应用场景)
有一天,产品跑来说:“我们要做一个用户注册功能,需要在用户注册成功后给用户发一封成功邮件。”
小明(攻城狮):“好,需求很明确了。” 不就提供一个注册接口,保存用户信息,同时发起邮件调用,待邮件发送成
功后,返回用户操作成功。没一会功夫,代码就写完了。验证功能没问题后,就发布上线了。
线上正常运行了一段时间,产品匆匆地跑来说:“你做的功能不行啊,运营反馈注册操作响应太慢,已经有好多用户
流失了。”
小明听得一身冷汗,赶紧回去改。他发现,原先的以单线程同步阻塞的方式进行邮件发送,确实存在问题。这次,
他利用了 JAVA 多线程的特性,另起线程进行邮件发送,主线程直接返回保存结果。测试通过后,赶紧发布上线。
小明心想,这下总没问题了吧。
没过多久,产品又跑来了,他说:“现在,注册操作响应是快多了。但是又有新的问题了,有用户反应,邮件收不
到。能否在发送邮件时,保存一下发送的结果,对于发送失败的,进行补发。”
小明一听,哎,又得熬夜加班了。产品看他一脸苦逼的样子,忙说:“邮件服务这块,别的团队都已经做好了,你不
用再自己搞了,直接用他们的服务。”
小明赶紧去和邮件团队沟通,谁知他们的服务根本就不对外开放。这下小明可开始犯愁了,明知道有这么一个服
务,可是偏偏又调用不了。
邮件团队的人说,“看你愁的,我给你提供了一个类似邮局信箱的东西,你往这信箱里写上你要发送的消息,以及我
们约定的地址。之后你就不用再操心了,我们自然能从约定的地址中取得消息,进行邮件的相应操作。”
后来,小明才知道,这就是外界广为流传的消息队列。你不用知道具体的服务在哪,如何调用。你要做的只是将该
发送的消息,向你们约定好的地址进行发送,你的任务就完成了。对应的服务自然能监听到你发送的消息,进行后
续的操作。这就是消息队列最大的特点,将同步操作转为异步处理,将多服务共同操作转为职责单一的单服务操
作,做到了服务间的解耦。
哈哈,这下能高枕无忧了。太年轻,哪有万无一失的技术啊~
不久的一天,你会发现所有业务都替换了邮件发送的方式,统一使用了消息队列来进行发送。这下仅仅一个邮件服
务模块,难以承受业务方源源不断的消息,大量的消息堆积在了队列中。这就需要更多的消费者(邮件服务)来共
同处理队列中的消息,即所谓的分布式消息处理。
这个故事不是我的原创,摘自:[https://github.com/jasonGeng88/blog/blob/master/201705/MQ.md]
在此引用,感谢故事作者!
引申阅读:Java 帝国之消息队列 https://mp.weixin.qq.com/s/80g7uI1UHCpZ2POaPFfICA
到底什么时候该使用MQ?https://mp.weixin.qq.com/s/Brd-j3IcljcY7BV01r712Q
5、关于RabbitMQ
RabbitMQ使用Erlang语言开发基于AQMP协议的开源消息队列。
特点:
高可靠性: RabbitMQ依靠消息确认、持久化等实现高可靠性,但其吞吐量不太高
高可用: RabbitMQ支持分布式部署,多个RabbitMQ服务器组成一个集群形成一个逻辑Broker
多种协议支持: RabbitMQ基于AQMP协议,但是可以通过安装插件支持其它协议,例如STOMP、MQTT协议等
多种客户端语言支持: RabbitMQ提供Java、C++等多种客户端语言支持
管理页面: RabbitMQ提供Web管理页面以便可视化管理
6、RabbitMQ安装配置大体步骤
1.安装对应版本的Erlang
2.设置Erlang环境变量
3.安装RabbitMQ
4.设置RabbitMQ环境变量
5.安装插件rabbitmq_management
7、安装配置
首先需要安装Erlang,为啥?因为Rabbit MQ 是建立在Erlang OTP平台之上的,所以装RabbitMQ服务器必须首先安装 Erlang 运行环境。要安装RabbitMQ,必须得有Erlang的环境,就跟java需要jvm一个道理。
Erlang 下载链接: https://www.erlang-solutions.com/resources/download.html
(特别说明:Erlang 下载的版本是 2.2.1,对应安装的RabbitMQ版本为 3.8.1 )
RabbitMQ版本为 3.8.1 下载链接:
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.1/rabbitmq-server-3.8.1.exe
8、rabbitmq和erlang的版本对应关系,

9、Erlang(版本为 2.2.1) 和 RabbitMQ(版本为 3.8.1)安装包文件

安装Erlang(版本为 2.2.1)

配置环境变量: C:\Program Files\erl10.5\bin\erl.exe
不赘述,安装过java的想必都会
10、Erlang环境变量配置完成之后,在开始菜单中找到如下图,点击


至此 Erlang 安装成功!
11、安装RabbitMQ

配置环境变量: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.1\sbin
不赘述,安装过java的想必都会
12、安装 rabbitmq_management
C:\WINDOWS\system32>rabbitmq-plugins list

C:\WINDOWS\system32>rabbitmq-plugins enable rabbitmq_management

13、运行完命令后,看到以上两个图表示安装成功了。
如何验证一下呢?在浏览器中输入:http://localhost:15672

用户名和密码输入:
用户名:guest
密 码:guest

至此,Windows环境下RabbitMQ的安装与配置完成
14、再回顾一下RabbitMQ安装配置大体步骤
1.安装对应版本的Erlang
2.设置Erlang环境变量
3.安装RabbitMQ
4.设置RabbitMQ环境变量
5.安装插件rabbitmq_management
网友评论