RabbitMQ概述

news/2024/10/24 8:58:56/

Rabbit是一个公司名.MQ也就是消息队列的意思,RabbitMQ是Rabbit企业下一个消息队列产品。

RabbitMQ是一个实现了AMQP的消息队列服务,是当前主流的消息中间件。

什么是MQ

MQ(message queue),本身是个队列,FIFO先入先出,只不过队列中存放的内容是消息而已,消息可以非常简单,比如只包含文本字符串,JSON等,也可以很复杂,比如内嵌对象。

MQ多用于分布式系统之间进行通信.

系统之间的调用通常有两种方式:

1.同步通信

直接调用对方的服务,数据从一端发出后立即就可以达到另一端

2.异步通信

数据从一端发出后,先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端,容器的一个具体实现就是MQ。

MQ的作用

MQ的主要工作是接收并转发消息,在不同的应用场景可以展现不同的作用。

可以把MQ想象成⼀个仓库. 采购部⻔进货之后, 把零件放进仓库⾥, ⽣产部⻔从仓库中取出零件, 并加⼯成产品. MQ和仓库的区别是, 仓库⾥放的是物品, MQ⾥放的是消息, 仓库负责存储物品,并转发物品,MQ负责存储和转发消息

1.异步解耦:

在业务流程中, ⼀些操作可能⾮常耗时, 但并不需要即时返回结果. 可以借助MQ把这些操
作异步化, ⽐如 ⽤⼾注册后发送注册短信或邮件通知, 可以作为异步任务处理, ⽽不必等待这些操作完成后才告知⽤⼾注册成功。

2.流量削峰:

在访问量剧增的情况下, 应⽤仍然需要继续发挥作⽤, 但是这样的突发流量并不常⻅. 如果
以能处理这类峰值为标准⽽投⼊资源,⽆疑是巨⼤的浪费. 使⽤MQ能够使关键组件⽀撑突发访问压⼒, 不会因为突发流量⽽崩溃. ⽐如秒杀或者促销活动, 可以使⽤MQ来控制流量, 将请求排队, 然后系统根据⾃⼰的处理能⼒逐步处理这些请求。
3.消息分发:
当多个系统需要对同⼀数据做出响应时, 可以使⽤MQ进⾏消息分发. ⽐如⽀付成功后, ⽀
付系统可以向MQ发送消息, 其他系统订阅该消息, ⽽⽆需轮询数据库.
4.延迟通知:
在需要在特定时间后发送通知的场景中,可以使用MQ的延迟消息功能,比如在电子商务平台中,如果用户下单后一定时间内未支付,可以使用延迟队列在超时后自动取消订单。

http://www.ppmy.cn/news/1541558.html

相关文章

Ansible自动化运维项目实战指南

Ansible自动化运维项目实战指南 在当今快速发展的IT环境中,运维工作的复杂性和规模性日益增加,传统的手动运维方式已难以满足高效、可靠、可重复性的需求。Ansible作为一款开源的自动化运维工具,凭借其简单易用、无需代理、基于SSH的架构特性…

idea 开发插件

idea 开发插件 一、代码生成插件MybatisX(免费)MyBatisCodeHelperPro (收费) 二、自动生成单元测试插件JUnitGenerator V2.0(免费)Squaretest插件(收费)TestMe插件(免费&…

强化学习和运筹决策优化

强化学习 强化学习(Reinforcement Learning, RL)是机器学习的一个分支,特别关注智能体(Agent)在与环境交互的过程中通过试错学习来改进决策策略。在强化学习中,智能体通过观察环境状态并采取行动来获得奖励…

[0154].第5节:IDEA中创建Java Web工程

我的后端学习大纲 IDEA大纲 1.1.IDEA中配置Tomcat: 1.找打setting: 2.配置Tomcat Server的位置: 3.这里配置Tomcat的名称以及配置应用服务器的位置。根据自己Tomcat的安装位置决定 4.配置好后,如下图所示 1.2.创建Web工程: 1.建…

centos配置ssh

在CentOS上配置SSH服务主要步骤: 安装OpenSSH服务器: 首先,你需要确保OpenSSH服务器软件包已经安装在你的系统上。你可以使用以下命令来安装它: sudo yum update sudo yum install openssh-server 启动SSH服务: 安装完…

基于Django+Python的宾馆管理系统设计与实现

项目运行 需要先安装Python的相关依赖:pymysql,Django3.2.8,pillow 使用pip install 安装 第一步:创建数据库 第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句 第三步:修改源…

Go通过gorm连接sqlserver报错TLS Handshake failed

Go通过gorm连接sqlserver报错TLS Handshake failed [error] failed to initialize database, got error TLS Handshake failed: tls: server selected unsupported protocol version 301 panic: TLS Handshake failed: tls: server selected unsupported protocol version 301 …

[0152].第3节:IDEA中工程与模块

我的后端学习大纲 IDEA大纲 1、Project和Module的概念: 2、Module操作: 2.1.创建Module: 2.2.删除Module: 2.3.导入Module: 1.导入外来模块的代码: 查看Project Structure,选择import module&#xff1a…