什么是RabbitMQ?
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
为什么要使用RabbitMQ?
RabbitMQ主要解决了3个问题:同步变异步,解耦和削峰问题
同步变异步:
解耦:
削峰:
在学习RabbitMQ之前,我们先学习下队列的相关知识
Provider
消息生产者,就是投递消息的程序。
Consumer
消息消费者,就是接受消息的程序。
没有使用消息队列时消息传递方式
使用消息队列后消息传递方式
什么是队列?
对列是生产者和消费者的中转站,生产者将消息放入队列,消费者从队列消费消息
队列里存储了什么?
在 rabbitMQ 中,信息流从你的应用程序出发,来到 Rabbitmq 的队列,所有信息可以只存储在一个队列中。队列可以存储很多信息,因为它基本上是一个无限制的缓冲区,前提是你的机器有足够的存储空间。
队列和应用程序的关系是什么?
多个生产者可以将消息发送到同一个队列中,多个消息者也可以只从同一个队列接收数据。
RabbitMQ学习代码见资源