文章目录
RabbitMQ
什么是RabbitMQ?
RabbitMQ 是一个由 Erlang 开发的 面向消息中间件,使用了 AMQP 高级消息队列协议,它是一种应用程序之间的通信方法,消息队
列在分布式系统开发中应用非常广泛
为什么要用RabbitMQ?
1.对我们服务之间进行解耦
2.异步的发送消息通信
3.可以将消息持久化存储
4.分布式系统下具备削峰,负载均衡,异步等高级功能
RabbitMQ的结构
Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。
Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消费方。
Producer:消息生产者,即生产方客户端,生产方客户端将消息发送到MQ。
Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。
RabbitMQ官网
https://www.rabbitmq.com/getstarted.html
安装
安装 RabbitMQ 首先需要安装 Erlang,安装完后才能安装 RabbitMQ ,打开浏览器输入http://localhost:15672/,进入RabbitMQ 自带的管理页面,默认账号密码是guest/guest
RabbitMQ的工作模式
1.简单模式
简单模式:就是一个生产者一个消费者,中间通过一个队列直接连接
可以生动形象的理解为会议室来了一个人,这个人拿起地上的网线捡起来插在自己的笔记本上
2.工作模式
工作模式:就是有多个消费者消费队列里的消息,队列里的消息只能被一个消费者消费,这样多部署几个消费者,就可以缓解压力,
会议室现在有两个人了,两个人轮流插网线,需要网的时候就用
3.发布订阅模式
发布订阅模式:上面两种模式生产者的消息只能被一个消费者消费,不符合某些实际场景。所以我们需要用到一个Exchange交换机角色来帮助我们把消息发给所有订阅我们的队列。
会议室现在来了三个人,轮流着来太麻烦了,于是给网线连上了路由器,都可以上网了
4.路由模式
路由模式:路由模式就是交换机并不是给所有订阅他的队列发送消息了,而是根据路由键来确定应该给哪个队列发送消息,队列和交换机绑定的时候需要通过路由键,而生产者发送消息的时候也需要指定路由键,这样就可以确定给哪个队列发送消息了。
连的人越来越多,发现网很卡,原来是隔壁在蹭网,需要给设置一个密码,密码一样才能连接
5.通配符模式
Topics模式:Topics模式就相当于模糊匹配,假如我想给姓张的发送消息,那么我就可以通过主题模式给所有姓张的发送消息。
密码太长太难记了,于是设置了,以123开头的所有密码都可以连接,只要是123开头,后面不管接什么都可以连接了
6.RPC
1、客户端即是生产者就是消费者,向RPC请求队列发送RPC调用消息,同时监听RPC响应队列。
2、服务端监听RPC请求队列的消息,收到消息后执行服务端的方法,得到方法返回的结果
3、服务端将RPC方法 的结果发送到RPC响应队列
4、客户端(RPC调用方)监听RPC响应队列,接收到RPC调用结果。
7.Header
不同于路由模式,header模式是通过key:value的格式来匹配的
版权归原作者 mmmmores 所有, 如有侵权,请联系我们删除。