菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
164
0

RabbitMQ工作原理

原创
05/13 14:22
阅读数 62826

【大致流程】

生产者Producer将消息发送给RabbitMQ Server/Broker里的交换机Exchange,交换机绑定有队列Queue,生产者在传递的过程中会携带路由键Routing_Key

交换机根据路由键和指定算法找到对应的队列,将信息传递给消费者Consumer

 

Producer ->Exchange->Queue->Consumer

【队列Queue】

先进先出(FIFO),具有缓存消息的能力,可以设置成持久化、临时、自动删除

持久化:会保存在本地服务器磁盘

临时:系统重启数据就会丢失

自动删除:不存在用户连接到Server就删除

 

【交换机Exchange】

一个Exchange可以绑定多个Queue,根据路由键将消息传递到指定Queue

有四种类型:

Direct、Fanout、Topic、Headers

 

Direct exchange:直连交换机,转发消息到routigKey指定的队列

Fanout exchange:扇形交换机,转发消息到所有绑定队列(速度最快

Topic exchange:主题交换机,按规则转发消息(最灵活

Headers exchange:首部交换机

 

Fanout:将消息转发给所有绑定的Queue,适用于新增业务,例如在原有用户注册基础上增加送积分活动

Direct:根据路由键传递给和该路由键绑定的Queue里面去,一个路由键可以绑定多个Queue。适用于有优先级别的业务,可以集中资源去处理指定队列的消息

Topic:一条消息发送给多个Queue,那么Exchange就会绑定很多的路由键,为了方便,发送指定规则的路由键主题交换机就可以

 

 

 

【绑定Binding】

Exchange和Queue是多对多关系

 

发表评论

0/200
164 点赞
0 评论
收藏