RabbitMQ 是一个消息代理,它允许生产者(发送数据消息的一方)和消费者(接收数据消息的一方)建立异步、实时且高性能的海量数据流。RabbitMQ 支持 AMQP(高级消息队列协议),这是一种开放标准的应用层协议。
采用 RabbitMQ 的主要原因包括以下几点:
- 您可以使用异步方法来提高应用程序的性能。
- 它通过数据消息中介,让您能够解耦并减少服务、微服务和应用程序之间的依赖关系,这意味着交换数据的生产者和消费者无需互相了解。
- 它允许在利用响应队列之后,交付(包含结果的)已发送数据的长时间运行处理。
- 它帮助您从单体架构迁移到微服务架构,其中微服务通过 Rabbit 以解耦和异步的方式交换数据。
- 它通过使消息能够被存储和转发,提供了可靠性和弹性。一条消息可以被投递多次,直到被处理为止。
- 消息排队是扩展应用程序的关键。随着工作负载的增加,您只需添加更多的工作进程(worker)来更快地处理队列。
- 它与数据流应用程序配合良好。
- 它对物联网(IoT)应用程序有益。
- 它是机器人(Bots)通信的必备工具。
RabbitMQ 基础概念
我们将利用温度监测器作为案例来详述 RabbitMQ 的概念:
- Producer(生产者):发送消息的软件程序。
- Exchange(交换机):接收来自生产者的消息,并将其路由到零个或多个队列。
- Queue(队列):支持小型和大型二进制消息的消息存储区/缓冲区。
.png)
