【IT老齐045】聊一聊RabbitMQ六种队列模式与应用场景-【IT老齐045】聊一聊RabbitMQ六种队列模式与应用场景
热门回复:
- 喊我回去背单词:045
了解MQ的组件:
1.生产者:消息提供者
2.消费者:消息使用者
3.MQ服务器:管理队列、消息及相关信息
4.消息:程序间通讯的数据
5.队列:消息存放的容器,消息是先进先出的
6.交换机:用于分发消息
1、简单模式:无交换机参与。实际工作中几乎用不到。生产者通过MQ将消息放入队列,队列发送给消费者。
2、工作队列:类似负载均衡。在多个消息的情况下,工作队列模式会将消息分发给不同的消费者,每个消费者会收到不同的消息,
并且根据处理消息的速度来接收消息的数量,进而让消费者程序发挥最大性能。适用于集群环境中做异步处理,能发挥每台服务器的性能。
高并发情况下,产出消息挤压,可水平扩容,增加消费者实例。
场景:12306的短信服务。
3、发布订阅:有交换机参与。生产者的消息,消费者均能接收到。
1.生产者不直接与队列绑定,而是将数据发至交换机
2.交换机用于将数据按某种规则送入与之绑定的队列,进而让消费者使用。
3.交换机将无差别的将所有消息送入与之绑定的队列,所有消费者拿到的消息完全相同。
场景:适用于数据大规模分发的情况。中国气象局提供气象信息,腾讯,网易拿到相同的气象信息。
4、路由模式:是发布订阅模式的变种。交换机根据routing key有条件将数据筛选后发给消费者队列。
场景:日志。消费者是监控系统,error的错误日志就会放到消费者队列中。
5、主题模式:路由模式的升级版。在routing key上添加通配符,具有模糊查询。
*匹配单个关键字
#匹配所有关键字
能用路由不用主题。
6、RPC同步通信。该过程线层阻塞。虽然MQ是异步的,一般生产者将消息送至消息队列候不关心消费者什么时候消费,
但有的情况下需要得到消费者的反馈。该模式需要两个队列,没有固定的生产者、消费者。实际用得很少,因为有dubbo。
- 海鲜饺子王:每天睡前看老齐 想听kafka
- IT老齐:架构300讲所有课件可以关注 IT老齐 公众号自行下载
QQ交流群:369531466 欢迎一起来玩啊
- 忙于加班的waiting:可以讲讲数据库连接池吗? c3p0, druid之类的知识点
- 大锤子-----:看了蛮多期的,质量还是不错的,老齐什么时候能安排一期怎么看源码[保佑]