rabbitmq中的模式都有哪些- 面试宝典

举报
皮牙子抓饭 发表于 2023/08/18 10:04:03 2023/08/18
【摘要】 RabbitMQ中常用的模式包括以下几种:简单模式(Simple Mode):一对一的消息传递模式,即一个生产者向一个消费者发送消息。工作队列模式(Work Queue Mode):也称为任务队列模式,一个生产者发送消息到一个队列,多个消费者从该队列中获取消息并进行处理。发布/订阅模式(Publish/Subscribe Mode):一个生产者发送消息到一个交换机,交换机将消息发送给所有与之...

RabbitMQ中常用的模式包括以下几种:

  1. 简单模式(Simple Mode):一对一的消息传递模式,即一个生产者向一个消费者发送消息。
  2. 工作队列模式(Work Queue Mode):也称为任务队列模式,一个生产者发送消息到一个队列,多个消费者从该队列中获取消息并进行处理。
  3. 发布/订阅模式(Publish/Subscribe Mode):一个生产者发送消息到一个交换机,交换机将消息发送给所有与之绑定的队列,每个队列都有自己的消费者。
  4. 路由模式(Routing Mode):一个生产者发送消息到一个交换机,交换机根据消息的路由键将消息发送到指定的队列。
  5. 主题模式(Topic Mode):一个生产者发送消息到一个交换机,交换机根据消息的主题(Topic)将消息发送到符合条件的队列。
  6. Headers模式:与路由模式类似,但是使用消息头(Headers)来进行匹配,而不是使用路由键。 以上是RabbitMQ中常用的几种模式,根据不同的业务场景和需求,可以选择合适的模式来进行消息传递和处理。

以下是使用RabbitMQ的Python示例代码:

pythonCopy codeimport pika
# 连接RabbitMQ服务器
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
# 定义队列名
queue_name = 'hello'
# 发送消息到队列
channel.queue_declare(queue=queue_name)
channel.basic_publish(exchange='', routing_key=queue_name, body='Hello, RabbitMQ!')
print("消息已发送")
# 定义回调函数来处理接收到的消息
def callback(ch, method, properties, body):
    print("接收到的消息: %r" % body)
# 接收消息
channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)
print('等待接收消息...')
# 开始循环接收消息
channel.start_consuming()
# 关闭连接
connection.close()

以上示例代码展示了如何使用RabbitMQ发送和接收消息。首先,连接到RabbitMQ服务器,然后声明一个队列。发送消息时,使用​​basic_publish​​方法将消息发送到指定的队列。接收消息时,使用​​basic_consume​​方法指定回调函数来处理接收到的消息。最后,通过调用​​start_consuming​​方法开始接收消息并进入循环,直到手动停止或关闭连接。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。