RabbitMQ处理类型分类

本文介绍了RabbitMQ的7种处理模式:简单的单向发送和接收、工作队列、发布订阅、路由、主题、远程过程调用。通过这些模式,RabbitMQ实现了灵活的消息传递和处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RabbitMQ处理的情况可以大体上分为7种情况
1、简单的单向发送和接收


一个发送者(Productor)和一个接收者(Comsumer),例子为Hello World
2、Work Queue 工作队列模式


一个发送者,2个接收者,发送者发送数据(例如从1到10),2个接收者轮流接收数据(即一个接收1、3、5、7、9一个接收2、4、6、8、10)
3、Publish/Subscribe模式


一个发送者,若干个接收者,接收者同时接收到相同的数据,例如发送者发送Just Do IT!若干个接收者同时接收到Just Do IT!
4、Routing 路由模式


原理同路由器,可以指定发送到某一“IP”地址的接收者,例如发送者指定发送给IP为192.168.1.1的接收者。但是允许存在不同的接收者之间公用同一IP,即不同接收者允许有多个IP地址。
5、Topic主题模式


 路由模式的变种,相当于路由模式+正则表达式,包含了*和#等匹配符
6、RPC remote procudure control 远程控制模式


适用于这样的场合, Client客户端将一些timecost的运算放在了Server端来进行,Clinet端只需要发送一个Message指令到Server,Server按照这个Message的内容进行相应的操作。



### RabbitMQ角色类型分类详解 #### 一、生产者(Producer) 负责发送消息至RabbitMQ服务器。生产者创建的消息会被发布到交换器(exchange),其中可能包含了路由键(route key)[^1]。 #### 二、消费者(Consumer) 等待接收来自队列的消息并处理这些信息。消费者可以订阅一个或多个队列来获取感兴趣的数据流。当有新消息到达已订阅的队列时,会触发回调函数执行相应的业务逻辑[^2]。 #### 三、代理(Broker) 即RabbitMQ服务本身,在这里存储着所有的消息直到被成功投递给目标消费者;同时也管理着各种资源如连接(connections)、信道(channels)以及内部组件(例如exchange 和 queue)。此外还提供了管理和监控功能以便于运维人员操作维护整个系统正常运行状态。 #### 四、交换器(Exchange) 用于接收生产者发来的消息并将它们转发给合适的队列。根据配置的不同,存在多种类型的交换器,比如direct, topic, headers等。每种类型决定了如何解析路由键并与绑定条件相比较从而决定最终应该把当前接收到的信息放置在哪几个特定的目标位置上。 #### 五、队列(Queue) 用来保存待处理的消息列表。每个队列都有唯一的名字,并且可以在其之上设置持久化属性确保即使遇到意外情况也能保证数据不丢失。另外还可以指定最大长度限制防止内存溢出等问题发生影响整体性能表现。 ```python import pika connection = pika.BlockingConnection(pika.ConnectionParameters('localhost')) channel = connection.channel() # 声明queue channel.queue_declare(queue='hello') def callback(ch, method, properties, body): print(f"Received {body}") channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True) print('Waiting for messages.') channel.start_consuming() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值