当前位置:首页 > 服务端 > 什么是RabbitMQ?RabbitMQ的作用是什么?

什么是RabbitMQ?RabbitMQ的作用是什么?

2022年09月16日 08:35:19服务端4

RabbitMQ是什么?

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件

消息队列是什么

是一种应用间的异步协作机制

作用

以常见的订单系统为例,用户点击【下单】按钮之后的业务逻辑可能包括:扣减库存、生成相应单据、发红包、发短信通知。在业务发展初期这些逻辑可能放在一起同步执行,随着业务的发展订单量增长,需要提升系统服务的性能,这时可以将一些不需要立即生效的操作拆分出来异步执行,比如发放红包、发短信通知等。这种场景下就可以用 MQ ,在下单的主流程(比如扣减库存、生成相应单据)完成之后发送一条消息到 MQ 让主流程快速完结,而由另外的单独线程拉取MQ的消息(或者由 MQ 推送消息),当发现 MQ 中有发红包或发短信之类的消息时,执行相应的业务逻辑。

通常用作数据解耦的情况,其它常见场景包括最终一致性、广播、错峰流控等等。

应用场景

场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种

1.串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个通知,而这种做法让客户端等待没有必要等待的东西.

2.并行方式:将注册信息写入数据库后,发送邮件的同时,发送短信,以上三个任务完成后,返回给客户端,并行的方式能提高处理的时间。

假设三个业务节点分别使用50ms,串行方式使用时间150ms,并行使用时间100ms。虽然并性已经提高的处理时间,但是,前面说过,邮件和短信对我正常的使用网站没有任何影响,客户端没有必要等着其发送完成才显示注册成功,英爱是写入数据库后就返回.

3.消息队列 :引入消息队列后,把发送邮件,短信不是必须的业务逻辑异步处理

作者:Li 李
来源链接:https://blog.csdn.net/qq_44147507/article/details/123829537

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/41715.html

标签: RabbitMQ
分享给朋友:

“什么是RabbitMQ?RabbitMQ的作用是什么?” 的相关文章

linux查看rabbitmq运行状态,RabbitMQ常用命令

RabbitMQ常用命令 rabbitmqctl命令 http://www.rabbitmq.com/man/rabbitmqctl.1.man.html# 1). 服务器启动与关闭 启动: rabbitmq-server –detach...

RabbitMQ与SpringBoot整合

RabbitMQ与SpringBoot整合

RabbitMQ  SpringBoot    一.RabbitMQ的介绍 二.Direct模式...

RabbitMQ消息确认机制(ACK)

RabbitMQ消息确认机制(ACK)

1、消息确认机制(ACK) 为了保证消息从队列可靠的达到消费者,RabbitMQ 提供了消息确认机制(Message Acknowledgement)。消费者在订阅队列时,可以指定 autoAck 参数,当 autoAck 参数等于 false 时,RabbitMQ 会等待...

RabbitMq:web管理端

RabbitMq:web管理端

1 简介 rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)、Connections(连接)、Channels(通道)、Exchanges(交换器)、Queues(队列...

Docker快速安装RabbitMQ服务

Docker快速安装RabbitMQ服务

  Docker快速安装RabbitMQ服务   快速开始 #!/bin/bash # 建议保存为start.sh脚本执行 docker run -d --hostname my-rabbit --name some-rabbit --...

RabbitMq详细介绍以及各种模式使用

RabbitMq详细介绍以及各种模式使用

转载:https://blog.csdn.net/zpcandzhj/article/details/81436980 5.2.简单队列 5.2.1.图示 P:消息的生产者 C:消息的消费者 红色:队列 生产者将消息发送到队列,消费者从队列中获取消息。 5...

初识RabbitMq

初识RabbitMq

RabbitMq详解 一:对RabbitMq的理解网上去搜下面直接干货走起: 什么叫消息队列 ​ 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 ​ 消息队列...

离线安装RabbitMQ,非root普通用户启动RabbitMQ

文章目录 0. 参考资料: 1. 下载 2. 网络需求 3. 安装 4. 配置sudo 5. RabbitMQ集群配置 6. 其他配置...

rabbitmq的鉴权

详细内容可以查看(http://www.rabbitmq.com/access-control.html) Rabbitmq有两种鉴权方式:一种是利用内置数据库鉴权。另一种是rabbitmq-auth-backend-http鉴权插件来实现后端鉴权...

Windows系统安装RabbitMQ

Windows系统安装RabbitMQ

1. RabbitMQ资源下载 Wiindows环境安装RabbitMQ, 首先需要安装 Erlang 环境. 另外, RabbitMQ和Erlang有版本兼容关系需要注意, 可以去官网查看不同的RabbitMQ版本兼容的最低和最高Erlang版本...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。