RabbitMQ(DAY1)

什么是消息队列?

可以理解为一个存放消息的容器,当我们需要使用消息的时候,直接从容器里面拿出消息使用即可。队列Queue特点是先进先出,所以消费消息时也是先进先出的。

image-20240901183730061

其中参与传递的双方叫做生产者消费者

image-20240901191817072

这似乎很像操纵系统中的进程通讯,也是一种消息队列。我们这里提到的消息队列稍微有点区别,更多指的是
各个服务以及系统内部的各个组件/模块之间的通信,属于一种中间件

中间件就是一类为应用软件服务的软件,应用软件是为用户服务的,用户不用接触或者使用到中间件

除了消息队列,常见的中间件有RPC框架、分布式组件、HTTP服务器、任务调度框架、配置中心、数据库层的分库分表工具和数据迁移工具。

为啥要用消息队列?

使用消息队列给我们带来三大好处:

  • 异步处理

A调用B 只需要监听B处理完成的消息,当b处理完后,会发一条消息给mq,mq再转发给A

image-20240902230407098

  • 削峰/限流
  • 降低系统的耦合性
部署推荐用docker 性能损失其实很小 不像redis

登录到rabbitmq端口是:15672