消息队列_RabbitMQ中的五种工作模式

在介绍RabbitMQ的工作模式之前,需求了解RabbitMQ中的角色。因为工作模式中的一些概念和角色息息相关。

RabbitMQ中的角色

1. 生产者
    与RabbitMQ建立连接后,向RabbitMQ发送消息的客户端,称为生成者,顾名思义,生成者主要是生产消息的。这里需要注意,生产这不是直接将消息发送到队列的,而是要经过Exchange(交换机),由Exchange交换机负责将消息发送到不同Queue(队列)。而Exchange模块是由Erlang语言编写的,该语言对于开发高并发和分布式应用具有天生的优势。
2. 消费者
    消息生产出来,总得有人消费。而从队列中取消息的客户端,称之为消费者。
3. 无角色
    RabbitMQ中还存在不生产消息,也不消费消息的角色,它的作用主要是用来声明组件。可以通过它创建自定义的交换机和队列。

简单模式

每一个队列,只被一个消费端监听,这种模式成为简单模式。
在这里插入图片描述
应用场景:发短信、发邮件。

争抢模式

一个队列,同时被多个消费者监听。
在这里插入图片描述
应用场景:秒杀、抢红包。

路由模式

前面简单模式和争抢模式,着重强调的是消费端。而路由模式,看到“路由”二字,大家也许会猜到,这个和交换机有关了。
路由模式指交换机通过消息的key将消息发送到指定的队列。
在这里插入图片描述
应用场景:
1.将手机号作为路由key ,将其发送到指定队列,由持有该手机号的客户端监听队列中的手机短信。
2.将系统的异常消息发送到指定队列,由负责日志记录的应用记录日志。

发布订阅模式

这里强调的也是交换机,将受到的消息发送给多个队列,而不单单指一个。
在这里插入图片描述
应用场景:短信群发、邮件群发。

主题模式

和路由模式很类似,区别在于主题模式的路由规则是通配匹配。指交换机通过消息的key将消息发送到某类队列中(类似于快递分拣)。
在这里插入图片描述
应用场景:物流分拣。

总结

五种工作模式中,前两种(简单模式、争抢模式)和消费者相关,后三种(路由模式、发布订阅模式、主题模式)和交换机相关。需要根据不同的场景使用不用的工作模式。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值