首页 最新文章网站正文

RabbitMQ 简介

为什么要使用 RabbitMQ

1 通俗易懂的配置项
RabbitMQ 这一中间件并不像 Hystrix 那样,如果需要使用,就要先进行集成。RabbitMQ 本身是依赖于 erlang 语言,并不是 java 语言,所以,如果我们的电脑上具备了 erlang 语言的环境,就可以使用 RabbitMQ 了,这一点是 Hystrix 等其他工具不具备的特性。

正是由于上述特性存在的原因,所以,RabbitMQ 的使用就相当灵活。由于本套教程是依赖于 spring Boot 框架来介绍 RabbitMQ 的,所以,我们需要将 RabbitMQ 集成到 Spring Boot 框架中去。

RabbitMQ 针对不同的集成环境,提供了很多种不同的集成实现方案,而无论是哪一种集成方案,其配置项都不是很多,我们只需要将最基本的几个主要配置项进行简单配置,就可以使用 RabbitMQ 了。

在将 RabbitMQ 依赖引入到项目中后,由于 Spring Boot 框架的特性,我们不需要进行繁琐的 xml 文件的配置,只需要将和 RabbitMQ 相关的配置项以一个配置类的形式,或直接将其配置到配置源文件中去即可。

2 安全可靠的投递性
RabbitMQ 在进行消息传递的时候,会在其容器中进行一些必要的检测,来保证消息间通信的可靠性,具体 RabbitMQ 是怎样进行消息间通信的检测的,我们在本套课程中就不再介绍了,因为这涉及到 RabbitMQ 的底层实现,和课程初衷是不符的。

现在我们只需要这样理解就行了:当我们将一条消息放入到 RabbitMQ 中时,RabbitMQ 首先会检测消息所处的环境,然后 RabbitMQ 会将该条消息通过一定的加密算法进行加密,最后,通过 RabbitMQ 的消息通道,将消息投递到它该去的地方。

3 近于实时的补偿性
我们都知道,什么事情都不可能是十全十美的。抛开 RabbitMQ 不说,在互联网行业中的其他工具,也不能百分百保证每时每刻都在正常工作,更何况是涉及到消息通信的工具。RabbitMQ 在传递消息时,由于一些客观原因或者是其本身的原因,可能会出现,在有大批量消息传递时,所有的消息不能百分百传递到目的地的问题。

RabbitMQ 在设计之初就考虑到了这个问题的出现,所以,RabbitMQ 提供了内置的消息补偿机制,这里我们简单做一下介绍。

当存在大批量的消息都需要经过 RabbitMQ 来投递时,RabbitMQ 会将这些消息划分成若干组,然后通过为组设置顺序的方式,来依次投递这些消息。如果在任意一组中,出现了消息未能投递到目的地的现象,那么, RabbitMQ 会将该条消息进行短暂的存储,待其他消息都到达目的地后,RabbitMQ 会重新将该条消息进行投递,然而,这个过程执行的时间是微乎其微的,几乎近于实时。

4 考虑周全的监控性
在进行消息间投递工作时,如果能够在后台监控到每条消息的投递状况,想必是再好不过了。

鉴于此,RabbitMQ 为我们内置了消息监控台,RabbitMQ 内置的消息监控台可以看到每一条消息的健康情况,其为我们提供了图表形式、表格形式等,来很好地为我们展示每条信息地投递状况,包括但不限于:消息何时发送的、使用的是哪个通道、消息何时被接收的等关键监控属性,可以很好地为我们监控每条消息地投递情况。

总结:

RabbitMQ 其实就是为了解决消息间通信而诞生的一款消息中间件,其依赖于 erlang 语言,并广泛应用于 Spring Boot 框架,通过提供一系列必要的消息保障机制,来保证消息间可以安全可靠的进行通信。

RabbitMQ 的优点
配置简单 : 支持通过配置类、yml 配置源文件的形式来对 RabbitMQ 进行配置。
安全可靠 : 提供了丰富的消息保障措施,例如,消息加密、消息投递补偿、消息检测等,保证我们消息间安全可靠地投递。
监控周全 : 提供了丰富的后台监控策略,通过不同的表现方式,来为我们提供消息的健康状况,方便我们监控。

RabbitMQ 的缺点
有一定的不稳定性 : 经过长时间的使用可以得出,RabbitMQ 有时会出现消息补偿不及时、发送通道卡死等现象,但这不是经常发生的。
速度还不是最快的 : 一般而言,RabbitMQ 本身的消息投递速度已经可以满足现实工作中绝大多数业务场景,在遇到复杂的业务场景时,比如,一次需要传递上万条数据时,消息间通信的速度可能就会达不到预期了,就需要我们对消息传递进行优化

#转载请注明出处!

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2021.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5