RabbitMQ 常用模式

发布于:2022-12-24 ⋅ 阅读:(429) ⋅ 点赞:(0)

目录

fanout分发订阅模式

direct路由模式

 Topic主体模式

Work工作队列模式

1.轮询模式

2.公平模式

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

MQ的使用场景

1.解耦、削峰、异步

2.高内聚低耦合

3.流量削峰

 

其他


 

 

 

RabbitMQ Tutorials — RabbitMQ

fanout分发订阅模式

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

direct路由模式

 

 

 Topic主体模式

Topic的路由是模糊匹配的

 

Work工作队列模式

主要有两种模式

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

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

1.轮询模式

 

 

2.公平模式

 

 

 

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

 

MQ的使用场景

1.解耦、削峰、异步

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

削峰:

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

 

 

 异步  ---   不会阻塞

 异步-线程池

 

 

存在问题

  1. 耦合度高

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

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

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

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

 

异步-消息队列

 

 

好处:

    完全解耦,用 MQ建立桥接

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

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

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

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

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

2.高内聚低耦合

 

3.流量削峰

 

其他

 


网站公告

今日签到

点亮在社区的每一天
去签到