什么是RabbitMQ
RabbitMQ是一个由ErLang语言编写的实现了AMQP(高级消息队列协议)的开源消息中间件 。RabbitMQ 支持消息的持久化、事务、拥塞控制、负载均衡等特性。
为什么要使用RabbitMQ
在实际开发过程中,我们可能会经常遇到一下情况 1、A系统需要调用B系统,比如发短信,发邮件 2、比如A系统需要同步数据到B系统 按照以往的方式,我们是直接在代码里面添加一个调用其它系统的方法。也许我们会使用异步的方式来调用它。但是不管怎样,这个调用的过程还是发生在我们系统内部,一旦这个过程崩溃,将会导致我们的主业务功能不可用。 因此我们引入了消息中间件,而RabbitMQ就是其中的一种,引入消息中间件为我们带来一些几点好处:
- 降低耦合度 把多个系统之间的调用放到了纤细中间件上面,降低了系统的耦合度
- 异步化 各个系统之间无需等待即可执行
- 提高系统吞吐能力 可以把高峰期的请求里面耗时到操作缓冲到消息队列里面,提高请求的响应速度
AMQP协议
什么是AMQP协议
AMQP是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开 发语言等条件的限制。目标是实现一种在全行业广泛使用的标准消息中间件技术,以便降低企业和系统集成的开销,并且向大众提供工业级的集成服务。
RabbitMQjava客户端的使用
几个基本概念
要使用客户端连接RabbitMQ,那么首先我们应该弄清楚一下几个概念:
连接
作为一个客户端,如果要和RabbitMQ通信,那么首先肯定得建立一条TCP