【RabbitMQ】基础相关概念及安装

参考文献:《RabbitMQ实战指南》


1.什么是消息中间件

  • Message Queue Middleware 消息队列中间件
    是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
    通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
    也因为其多被集成用于分布式系统间的数据通信,也被称为 分布式消息中间件
    在这里插入图片描述

2.MQ(消息队列)的作用

MQ 的全称是 Message Queue(消息队列),指在消息的传输过程中用于保存消息的容器。多用于分布式系统间通信。
消息队列的作用和优势有很多,这里我们简单列举两三个:

  • 消息存储(持久化)
    在分布式系统间的通信中,会有数据处理失败或者丢失的情况存在,当使用了消息队列后,其可以为我们对消息进行一个持久化,并且可以提供一些确认和重新发送等机制,确保了消息的可靠性。

  • 异步提取消息
    在有了这个消息队列后,发送方和接受方的发送,接受时间点便变得相对自由了起来,书中原话为:在很多时候应用不想也不需要立即处理消息,这种情况下,消息中间件提供了异步处理机制,允许应用把这些消息放入消息中间件中,但并不立即处理它,在之后需要的时候再慢慢处理。如果没有中间件的话是无法达到这个效果的。

  • 削峰填谷
    这里主要是使用了消息队列的缓冲作用,假设,某系统一秒钟只能处理100条请求消息,突然此时访问的消息量上升为500,这时候系统可能会顶不住压力宕机,在使用了消息队列之后,访问的信息不会直接打到处理的系统上,而是被存在了消息队列中,系统可以设置每秒处理的请求数,也就是每秒从队列中拉去多少个请求进行处理,可以避免系统被突然增加的访问击垮,这是萧(削)峰。将本来需要一秒钟处理掉500条请求变为分五秒美妙各处理100条请求,此为填谷,二者是分不开的。此为确保系统的稳定性。
    在这里插入图片描述

3.相关的消息队列产品

具有代表性的四种消息中间件:
在这里插入图片描述

4.RabbitMQ概述

RabbitMQ是一种以Erlang 语言开发基于 AMQP 标准的消息中间件产品,最初起源于金融系统,用于在分布式系统中存储转发消息。
在这里插入图片描述

官网:RabbitMQ
其中,Erlang 语言由 Ericson 设计,专门为开发高并发分布式系统的一种语言,因为语言的缘故,其并发能力强,实时的通信能力就强,其消息的延迟性是最低的,这也是Erlang语言的优势所在。
至于AMQP我们在下一个小节中详细说明。
还有就是为什么会叫RabbitMQ?
书上是这么说的:
在这里插入图片描述
这个"by Pivotal"官网Logo好像已经看不到了。。。

5.JMS与AMQP

从MQ的发展开始:
在消息中间件百花齐放之前,有一些消息中间件的商业实现,比如微软的 MSMQ( MicroSoft Message Queue),IBM的WebSphere等,但是他们都有相同的优点,那就是贵,而且由于商业壁垒,商业 MQ 供应商想要解决应用互通的问题,而不是去创建标准来实现不同的 MQ 产品间的互通,或者允许应用程序更改 MQ 平台。
在这里插入图片描述
以后在我们的开发和练习中都会使用到封装AMQP协议API的jar包。

6.RabbitMQ安装

如果只是学习使用的话,安装在windows系统上可能还会方便一点,不用再开虚拟机了,不过最终的使用肯定不会是安装和部署在windows上的,所以这边我们提供多种安装方式,由于其比较独立,这里单独再开博客用来单独说明:

猜你喜欢

转载自blog.csdn.net/cjl836735455/article/details/109498246