RabbitMQ 常用模式

目录

fanout分发订阅模式

direct路由模式

 Topic主体模式

Work工作队列模式

1.轮询模式

2.公平模式

 代码方式声明绑定交换机、队列

MQ的使用场景

1.解耦、削峰、异步

2.高内聚低耦合

3.流量削峰

 

其他


 

RabbitMQ 常用模式_第1张图片 

 

RabbitMQ Tutorials — RabbitMQ

fanout分发订阅模式

RabbitMQ 常用模式_第2张图片

交换机发送消息给绑定的队列

direct路由模式

RabbitMQ 常用模式_第3张图片

 

RabbitMQ 常用模式_第4张图片

 

 Topic主体模式

Topic的路由是模糊匹配的

RabbitMQ 常用模式_第5张图片

RabbitMQ 常用模式_第6张图片

 

Work工作队列模式

主要有两种模式

轮询分发模式:一个消费者消费一条,按均分配

公平分发模式:根据消费者的消费能力进行公平分发,处理快的处理的多;能者多劳,按劳分配

1.轮询模式

RabbitMQ 常用模式_第7张图片

 RabbitMQ 常用模式_第8张图片

 

2.公平模式

RabbitMQ 常用模式_第9张图片

 RabbitMQ 常用模式_第10张图片

 

 

 代码方式声明绑定交换机、队列

RabbitMQ 常用模式_第11张图片

 

MQ的使用场景

1.解耦、削峰、异步

单体架构业务都堆积在一个项目中,采用分布式架构,将系统进行拆分,拆分就是解耦。拆分过程中模块间沟通和协同采用消息队列,用来RabbitMQ,核心是多线程异步的,可以让网站性能成倍提成,因为异步能让处理数据能力更高效。

削峰:

串行的话耗时是所有业务执行时间之和,异步各个业务独立不会阻塞。

RabbitMQ 常用模式_第12张图片

RabbitMQ 常用模式_第13张图片 

 

 异步  ---   不会阻塞

 异步-线程池

RabbitMQ 常用模式_第14张图片

 RabbitMQ 常用模式_第15张图片

 

存在问题

  1. 耦合度高

  2. 需要自己写线程池自己维护成本太高

  3. 出现了消息可能会丢失,需要你自己做消息补偿

  4. 如何保证消息的可靠性你自己写

  5. 如果服务器承载不了,你需要自己去写高可用

 

异步-消息队列

RabbitMQ 常用模式_第16张图片

 RabbitMQ 常用模式_第17张图片

 

好处:

    完全解耦,用 MQ建立桥接

    有独立的线程池和运行模型

    出现了消息可能会丢失,MQ有持久化功能

    如何保证消息的可靠性,死信队列和消息转移等

    如果服务器承载不了,你需要自己去写高可用,HA镜像模型高可用

按照以上约定,用户的响应时间相当于是订单信息写入数据库的时间,也就是50毫秒。注册邮件,发送短信写入消息队列后,直接返回,因此写入消息队列的速度很快,基本可以忽略,因此用户的响应时间可能是50毫秒。因此架构改变后,系统的吞吐量提高到每秒20QPS。比串行提高了3倍,比并行提高了两倍

2.高内聚低耦合

RabbitMQ 常用模式_第18张图片

 

3.流量削峰

RabbitMQ 常用模式_第19张图片

 

其他

RabbitMQ 常用模式_第20张图片

 

你可能感兴趣的:(MQ学习记录,rabbitmq,分布式)