RabbitMQ简介

RabbitMQ特点

1、灵活性:通过不同类型的exchange、binding_key、routing_key实现灵活的消息分发机制

2、可靠性:通过持久化、回调机制确认来实现消息不丢失

3、高并发:使用earlang语言开发,天生高并发

概念模型

简单的模型:

producer --> broker --> consumer

完整模型:

producer --> exchange -(bindings)-> queue --> consumer

 

Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue

Exchange:消息队列交换机,按一定的规则将消息路由转发到队列,对消息进行多虑

Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消费者

Producer:消息生产者,即生产方客户端,发送消息到Broker

Consumer:消息消费者,即消费方客户端,从Broker消费消息

交换机类型:

fanout:将收到的消息发送给与它绑定的每一个queue

direct:如果收到的消息的routing_key与binding_key(queue与exchange的绑定key)相同的话,就将该消息路由到指定的queue

topic:原理与direct相同,只不过支持多个维度的匹配、支持‘#’(匹配0个到多个词)、‘*’(匹配一个词)

headers:效率低,不常用

六种工作模式:

1、简单模式:

场景:某个生产者给某个消费者发消息

2、工作队列模式:

场景:生产者给多个消费者发消息,从生产者发出的消息只能被其中一个消费者获取到

 

3、订阅模式

场景:生产者发布消息,多个消费者都来订阅这个消息

交换机类型为fanout

4、路由模式

场景:生产者发布消息,根据routing_key对应到不同的队列中去,给不同的消费者

采用交换机类型为direct

5、通配符模式

场景:生产者发布的消息,根据routing_key匹配到不同的队列,给不同的消费者

采用交换机类型为topic

6、RPC模式

Remote Procedure Call Protocol 远程过程调用协议

场景:生产者发布消息给消费者后,需要获取返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值