(技术)叨逼叨RabbitMQ在Windows环境下的安装与配置

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的版本对应关系,

1.jpg

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

2.jpg

安装Erlang(版本为 2.2.1)

3.jpg
配置环境变量: C:\Program Files\erl10.5\bin\erl.exe
不赘述,安装过java的想必都会

10、Erlang环境变量配置完成之后,在开始菜单中找到如下图,点击

4.jpg
5.jpg

至此 Erlang 安装成功!

11、安装RabbitMQ

6.jpg
配置环境变量: C:\Program Files\RabbitMQ Server\rabbitmq_server-3.8.1\sbin
不赘述,安装过java的想必都会

12、安装 rabbitmq_management

 C:\WINDOWS\system32>rabbitmq-plugins list

7.png
 C:\WINDOWS\system32>rabbitmq-plugins enable rabbitmq_management

8.png

13、运行完命令后,看到以上两个图表示安装成功了。

如何验证一下呢?在浏览器中输入:http://localhost:15672

7.jpg

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

8.jpg

至此,Windows环境下RabbitMQ的安装与配置完成

14、再回顾一下RabbitMQ安装配置大体步骤

  1.安装对应版本的Erlang
  2.设置Erlang环境变量
  3.安装RabbitMQ
  4.设置RabbitMQ环境变量
  5.安装插件rabbitmq_management

想不想联系到我?想?不想?到底想不想?不想,不想就算了,关了页面走吧,我的QQ群:578060039 也不告诉你了

打完收工

你可能感兴趣的:((技术)叨逼叨RabbitMQ在Windows环境下的安装与配置)