SpringBoot整合RabbitMQ:6种模式实战

RabbitMQ下载地址:Downloads - Erlang/OTP

成功登录界面,可查看MQ详情

1.rabbitmq介绍

rabbitmq是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。
     1).rabbitmq的作用: 消峰、异步、解耦
     2).rabbitmq的特点:
          可靠性:通过持久化、传输确认、发布确认等操作保证可靠性
          灵活的路由:在消息进入队列之前,通过Exchange来路由消息
                                对于典型的路由功能,Rabbit已经提供了一些内置的Exchange来实现
                                针对更复杂的路由功能,可以将多个Exchange绑定在一起,也通过插件机制实现自己的Exchange
          消息集群:多个RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker
          高可用:队列可以在集群中的机器上进行镜像,实现故障快速切换
          跟踪机制:如果消息异常,RabbitMQ提供了消息的跟踪机制


2.rabbitmq模块介绍

依赖

配置 

rabbitmq的六种工作模式:
     1).simple简单模式
     一个队列一个消费者
     消费者监听消息队列,消息队列中有消息就消费掉,消息队列中数据也会清除
在这里插入图片描述

生产者

配置queue_simple队列

 发送Message到queue_simple队列(自己用postman发就行)

 消费者

监听queue_simple队列

 调用simpleSend接口

 消费者控制台

 成功消费信息!

 2).work工作模式
     一个队列多个消费者
     c1和c2共同监听一个消息队列,但是一个消息只能被一个消费者消费
在这里插入图片描述

 生产者

配置queue_work队列

 发送10条Message到queue_work队列

 消费者

监听queue_work队列.两个消费者同时监听queue_work队列

 调用simpleSend接口.查看消费者控制台

只能被一个监听者消费!

 3).publish/subscribe发布订阅模式
     生产者将消息不是直接发送到队列,而是发送到交换机,没有路由规则
     然后由交换机发送给两个队列,两个消费者各自监听一个队列,来消费消息
在这里插入图片描述

生产者 

配置fanOutExchange绑定queue_simple和queue_work队列

 发送消息到fanOutExchange交换机

 消费者

还是监听queue_simple和queue_work队列

 调用fanOutSend接口,消费者控制台如下

 消息被queue_simple和queue_work01消费,因为queue_work和queue_work01监听同一个队列,只能被一个人消费.

 4).routing路由模式
     消息生产者将消息发送给交换机按照路由判断
     交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息
在这里插入图片描述

 生产者

创建三个队列routing-queue1,routing-queue2,routing-queue3对应不同的routekey:info,waring,error。

 发送消息到directExchange

消费者

分别对三个队列进行监听

 调用routeSend接口

  5).topic 主题模式(模糊的路由规则)
     消息产生者产生消息后把消息交给交换机
     交换机根据key的规则模糊匹配到对应的队列,由队列的监听消费者接收消息消费
在这里插入图片描述

生产者 

在exchange_topic交换机下创建queue_topic1,queue_topic2队列,匹配单个和多个后缀

 

发送信息到exchange_topic交换机

消费者

监听queue_topic1,queue_topic2

 调用sendTopic接口

第一次发送到exchange_topic交换机,根据route"#"匹配规则(# 零个或多个),可以发送到queue_topic1中.

第二次发送到exchange_topic交换机,根据route"*"匹配规则(单个)和"#"匹配规则(# 零个或多个),可以发送到queue_topic1和queue_topic2中.

所以queue_topic1会收到两次Message,而queue_topic2只能收到一次

 6).RPC(远程过程调用)模式
     RPC模式与 work工作模式差不多(都不需要交换器、都需要指定唯一的消息队列进行消息传递)
     RPC模式是一个回环结构,客户端C先发送消息到消息队列
     远程服务端S获取消息,然后再写入另一个消息队列,向原始客户端 Client 响应消息处理结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值