RabbitMQ工作模式简介说明及每个工作模式的适用场景说明

乔欣 Java面经 发布时间:2022-11-16 09:58:41 阅读数:7088 1 中间件
下文笔者讲述"RabbitMQ工作模式及应用场景"简介说明,如下所示

RabbitMQ工作模式简介

RabbitMQ工作模式有以下六种
    简单模式、工作模式、
	发布订阅模式、路由模式、
	主题模式、RPC模式

一、简单模式

原理:
  一个生产者,一个消费者。
  生产者将消息发送到队列,
  消费者监听消息队列
 如果队列中有消息,就进行消费,消费后消息从队列中删除
图片

适用场景

  聊天:
     有一个oa系统
     用户通过接收手机验证码进行注册
     页面上点击获取验证码后
     将验证码放到消息队列
     然后短信服务从队列中获取到验证码
     并发送给用户

二、工作模式

原理:
   一个生产者,多个消费者,一条消息只能被一个消费者消费
   生产者将消息发送到消息队列,多个消费者同时监听一个队列,
   谁先抢到消息谁负责消费。
   这样就形成了资源竞争
   谁的资源空闲大
   争抢到的可能性就大

适用场景

  电商平台红包
     有一个电商平台
     有两个订单服务
     用户下单的时候
     任意一个订单服务消费用户的下单请求生成订单即可
      不用两个订单服务同时消费用户的下单请求

三、发布订阅模式

原理:
   一个生产者,多个消费者,每个消费者都可以收到相同的消息。
   生产者将消息发送到交换机,
   交换机类型是fanout,
   不同的队列注册到交换机上,
   不同的消费者监听不同的队列,
   所有消费者都会收到消息

适用场景

邮件群发,群聊天,广播(广告)
   商城,我们新添加一个商品后
   同时需要去更新缓存和数据库

四、路由模式

原理:
   生产者将消息发送给交换机
   消息携带具体的routingkey
   交换机类型是direct,
    交换机匹配与之绑定的队列的routingkey,
	分发到不同的队列上

适用场景

一个商城,
新添加了一个商品,实时性不是很高,
只需要添加到数据库即可
无需刷新缓存

五、主题模式

原理:
   路由模式的一种
   交换机类型是topic
   路由功能添加了模糊匹配
  星号(*)代表1个单词,#号(#)代表一个或多个单词

适用场景

一个商城,新添加了一个商品,
实时性不是很高,
只需要添加到数据库即可,
数据库包含了主数据库mysql1和从数据库mysql2的内容
无需刷新缓存

六、RPC

1、首先客户端发送一个reply_to和corrention_id的请求,
    发布到RPC队列中

2、服务器端处理这个请求,
    并把处理结果发布到一个回调Queue,
	此Queue的名称应当与reply_to的名称一致

3、客户端从回调Queue中得到先前corrention_id设定的值的处理结果。
    如果碰到和先前不一样的corrention_id的值,
	 将会忽略而不是抛出异常
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202211/16685639664928.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者