RabbitMQ

您所在的位置:网站首页 rabbitmq拉取消息 RabbitMQ

RabbitMQ

2024-07-11 21:19| 来源: 网络整理| 查看: 265

RabbitMQ简介 一、为什么使用MQ消息队列二、RabbitMQ 简介三、RabbitMQ 的组成以及模式1、RabbitMQ 的组成2、RabbitMQ 的消息模式3、消费者消息获取方式 四、有总结的不对的地方/或者问题 请指正, 我在努力中

一、为什么使用MQ消息队列

为什么使用RabbitMQ? RabbitMQ 能为我们解决什么?

       答案是: MQ 能为我们 削峰/限流 、解耦(降低耦合性)

削峰/限流:先将短时间高并发产生的事务消息存储在消息队列中,然后后端服务再慢慢根据自己的能力去消费这些消息,这样就避免因为高并发而产生的各种问题。解耦(降低耦合性):降低系统服务之间的耦合性,避免了服务之间直接相互调用造成系統耦合性高,通过MQ队列来作为中间商,来使双方进行交互降低耦合。

同样的使用消息队列从开发角度我们需要考虑什么:

消息的顺序问题消息丢失问题消息重复消费问题消息模式的使用MQ系统的维护问题

SpringBoot 集成RabbitMQ: SpringBoot 集成多个RabbitMQ:http://t.csdn.cn/D4sdG

二、RabbitMQ 简介

       RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库

       在Java 开发过程中我们会遇到很多消息队列的使用 RabbitMQ、RocketMQ、KafKa 等,这里就先不说他们的区别了 后边单独出一篇 讲述他们的区别。

三、RabbitMQ 的组成以及模式 1、RabbitMQ 的组成

在RabbitMQ 中 是由 发布者、队列 、交换机、路由、消费者 组成

发布者: 消息的发布者队列: 存储消息交换机: 负责转发消息,不具备存储消息,因此如果没有队列与交换机绑定 那么消息会丢失路由: 路由规则 交换机与队列绑定 设置路由规则消费者: 消费消息的客户端 2、RabbitMQ 的消息模式

MQ消息分为两种模式 P2P(点对点) 、 publish/subscribe(发布/订阅模式)

在RabbitMQ中常用的五种消息模式 基本消息模式 、 work工作队列模式、 发布订阅模式、路由模式、topic主题模式

RabbitMQ模式组成消息类型消息发送到基本消息模式发布者 -> 队列 -> 消费者P2P(点对点)队列(Queue)work工作队列模式发布者 -> 队列 -> 消费者(多个)P2P(点对点)队列(Queue)发布订阅模式发布者 -> 交换机 -> 队列 -> 消费者publish/subscribe(发布/订阅模式)交换机(ExChange)路由模式发布者 -> 交换机 -> 路由规则 -> 队列 -> 消费者publish/subscribe(发布/订阅模式)交换机(ExChange)topic主题模式发布者 -> 交换机 -> 路由规则 -> 队列 -> 消费者publish/subscribe(发布/订阅模式)交换机(ExChange)

基本消息模型(简单模式): 点对点 一个发布者 一个队列 一个消费者, 直接将消息发送到队列上 1对1的。

work工作队列模式:点对点 一个发布者 一个队列 多个消费者,直接将消息发送到队列上,只不过消费者变成了多个但是还是一条消息对应一个消费者。

订阅广播模式:一对多(消息(1)对队列(多)),发布者将消息发布到交换机上,队列由消费者创建,在创建队列的时候绑定交换机,交换机不会存储消息。

路由模式(Routing):一对多(消息(1)对队列(多)),发布者将消息发布到交换机上, 发布消息的时候指定路由key。消费者创建队列时将 队列绑定交换机指定路由key。

topic主题模式:一对多(消息(1)对队列(多)),topic模式就是路由模式的升级版 支持模糊匹配支持通配符 *(任意一个key)、 #(多个key) 消息也是发送到交换机上,交换机与路由绑定,消费者创建队列绑定路由

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

3、消费者消息获取方式

消费者消息获取方式存在两种

pull 模式: 消费者主动定时请求 RabbitMQ 拉取消息。push模式: RabbitMQ 主动推送消息给消费者。 四、有总结的不对的地方/或者问题 请指正, 我在努力中


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3