当前位置: 首页 > news >正文

【01初识】-初识 RabbitMQ

目录

  • 学习背景
  • 1- 初识 MQ
    • 1-1 同步调用
      • 什么是同步调用?
      • 小结:同步调用优缺点
    • 1-2 异步调用
      • 什么是异步调用?
      • 小结:异步调用的优缺点,什么时候使用异步调用?
    • 1-3 MQ 技术选型


学习背景

  • 异步通讯的特点:异步系统的并发很高。

实际业务场景:


1- 初识 MQ

1-1 同步调用

什么是同步调用?

  • 以支付服务为例子,如果一个商品的支付过程中涉及多个子操作。比如 余额扣减、支付状态更新、订单状态的更新、短息通知服务、积分服务等。
  • 这些额外的操作和支付过程中核心业务,也就是库存的扣减无关,如果采用同步的方式是一个耗时的过程。

小结:同步调用优缺点

在这里插入图片描述


1-2 异步调用

什么是异步调用?

异步调用方式其实就是基于消息通知的方式,一般包含三个角色:

  • 消息发送者:投递消息的人,就是原来的调用方。
  • 消息代理:管理、暂存、转发消息,你可以把它理解成微信服务器。
  • 消息接收者:接收和处理消息的人,就是原来的服务提供方。

下单场景下的异步调用

  • 支付服务不再同步调用业务关联度低的服务,而是发送消息通知到 Broker。

优点

  • 解除耦合,拓展性强
  • 无需等待,性能好
  • 故障隔离
  • 缓存消息,流量削峰填谷

小结:异步调用的优缺点,什么时候使用异步调用?

在这里插入图片描述


1-3 MQ 技术选型

  • MQ(Message Queue),中文是消息队列,字面开来就是存放消息的队列,也就是异步调用中的 Broker。

对比

  • 如果对消息的可靠性要求较高的话,需要使用 RabbitMQ ,如果对吞吐量有要求的话需要使用 Kafka 等。
  • RabbitMQ 是使用 Erlang 语言开发的,Erlang 是一种面向并发的语言,其次 RabbitMQ 支持的协议更多。
  • Kafka 利用与吞吐量非常大的场景下,比如大型的项目做日志收集。


相关文章:

【01初识】-初识 RabbitMQ

目录 学习背景1- 初识 MQ1-1 同步调用什么是同步调用?小结:同步调用优缺点 1-2 异步调用什么是异步调用?小结:异步调用的优缺点,什么时候使用异步调用? 1-3 MQ 技术选型 学习背景 异步通讯的特点&#xff…...

CTF-RE 从0到N:汇编层函数调用

windows 在 Windows 平台上的汇编语言中,调用函数的方式通常遵循特定的调用约定(Calling Convention)。最常见的调用约定包括: cdecl: C 默认调用约定,调用者清理堆栈。stdcall: Windows API 默认调用约定&#xff0…...

雷池社区版compose配置文件解析-mgt

在现代网络安全中,选择合适的 Web 应用防火墙至关重要。雷池(SafeLine)社区版免费切好用。为网站提供全面的保护,帮助网站抵御各种网络攻击。 compose.yml 文件是 Docker Compose 的核心文件,用于定义和管理多个 Dock…...

无人机避障——4D毫米波雷达Octomap从点云建立三维栅格地图

Octomap安装 sudo apt-get install ros-melodic-octomap-ros sudo apt-get install ros-melodic-octomap-msgs sudo apt-get install ros-melodic-octomap-server sudo apt-get install ros-melodic-octomap-rviz-plugins # map_server安装 sudo apt-get install ros-melodic-…...

Python(数据结构2)

常见数据结构 队列 队列(Queue),它是一种运算受限的线性表,先进先出(FIFO First In First Out) Python标准库中的queue模块提供了多种队列实现,包括普通队列、双端队列、优先队列等。 1 普通队列 queue.Queue 是 Python 标准库 queue 模块中的一个类…...

深入解析HTTP与HTTPS的区别及实现原理

文章目录 引言HTTP协议基础HTTP响应 HTTPS协议SSL/TLS协议 总结参考资料 引言 HTTP(HyperText Transfer Protocol)超文本传输协议是用于从Web服务器传输超文本到本地浏览器的主要协议。随着网络安全意识的提高,HTTPS(HTTP Secure…...

Java IO 模型

I/O 何为 I/O? I/O(Input/Output) 即输入/输出 。 我们先从计算机结构的角度来解读一下 I/O。 根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设备、输出设备。 输入设备(比…...

安装双系统后ubuntu无法联网(没有wifi标识)网卡驱动为RTL8852BE

安装双系统后ubuntu没有办法联网,(本篇博客适用的版本为ubuntu20.04)且针对情况为无线网卡驱动未安装的情况 此时没有网络,可以使用手机数据线连接,使用USB共享网络便可解决无法下载的问题。 打开终端使用命令lshw -C …...

Sqoop的安装配置及使用

Sqoop安装前需要检查之前是否安装了Tez,否则会产生版本或依赖冲突,我们需要移除tez-site.xml,并将hadoop中的mapred-site.xml配置文件中的mapreduce驱动改回成yarn,然后分发到其他节点,hive里面配置的tez也要移除,然后…...

R语言机器学习算法实战系列(十三)随机森林生存分析构建预后模型 (Random Survival Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程加载R包案例数据数据预处理数据描述构建randomForestSRC模型评估模型C-indexBrier score特征重要性构建新的随机森林生存模型风险打分高低风险分组的生存分析时间依赖的ROC(Ti…...

三款计算服务器配置→如何选择科学计算服务器?

科学计算在众多领域都扮演着关键角色,无论是基础科学研究还是实际工程应用,强大的计算能力都是不可或缺的。而选择一台合适的科学计算服务器,对于确保科研和工作的顺利进行至关重要。 首先,明确自身需求是重中之重。要仔细考虑计算…...

Oracle 19c RAC删除多余的PDB的方式

文章目录 一、删除PDB并删除数据文件二、删除PDB并保留数据文件三、插拔PDB 一、删除PDB并删除数据文件 所删除的pdb必须是mount的状态才可以删除: #1、关闭pdb alter pluggable database pdb_name close immediate instancesall; #2、删除pdb以及数据文件 drop p…...

什么是云渲染?云渲染有什么用?一篇看懂云渲染意思

你知道云渲染是怎么回事吗? 其实就是把3D模型变成2D图像的过程,只不过这个过程是在云端完成的。我们在本地啥都不用做,只需要等结果就行。 现在云渲染主要有两种类型:一种是物理机房云渲染,另一种是服务器机房云渲染。…...

MATLAB中 exist函数用法

目录 语法 说明 示例 检查工作区变量是否存在 检查文件夹是否存在 检查 MATLAB 函数是否为内置函数 exist函数的功能是检查变量、脚本、函数、文件夹或类的存在情况。 语法 exist name exist name searchType A exist(___) 说明 exist name 以数字形式返回 name 的类…...

在银河麒麟系统中Qt连接达梦数据库

解决在银河麒麟系统中使用Qt连接达梦数据库提示:project Error library odbc is not defined问题 一、编译ODBC 下载解压unixODBC(http://www.unixodbc.org/unixODBC-2.3.1.tar.gz) 打开终端,切换到unixODBC-2.3.1目录下&#x…...

nodejs 服务器实现负载均衡

server.js const express require(express); const { createProxyMiddleware } require(http-proxy-middleware); const axios require(axios);const app express();// 定义后端服务列表 const services [{ target: http://localhost:3001 },{ target: http://localhost:…...

今日总结10.29

常见序列化协议有哪些 序列化(serialization)是将对象序列化为二进制形式(字节数组),一般也将序列化称为编码(Encode),主要用于网络传输、数据持久化等。常见的序列化协议包括以下几…...

使用 FastGPT 工作流实现 AI 赛博算卦,一键生成卦象图

最近那个男人写的汉语新解火遍了全网,那个男人叫李继刚,国内玩 AI 的同学如果不知道这个名字,可以去面壁思过了。 这个汉语新解的神奇之处就在于它只是一段几百字的提示词,效果却顶得上几千行代码写出来的应用程序。 这段提示词…...

vue3+ts实时播放视频,视频分屏

使用vue3以及播放视频组件Jessibuca Jessibuca地址 使用循环个数来实现分屏 效果图&#xff0c;四屏 九屏 dom代码 <div class"icon"><div class"icon-box"><span class"text">分屏&#xff1a;</span><el-icon …...

【网页设计】学成在线案例

Demo 典型的企业级网站&#xff0c;目的是为了整体感知企业级网站的布局流程&#xff0c;复习以前知识。 集合代码见文章最后。 5.1 准备素材和工具 学成在线 PSD 源文件。开发工具 PS&#xff08;切图&#xff09; sublime&#xff08;代码&#xff09; chrome&#xff0…...

一篇文章总结 SQL 基础知识点

1. 官方文档 MySQL&#xff1a;https://dev.mysql.com/doc/refman/8.4/en/ SQL Server&#xff1a;What is SQL Server? - SQL Server | Microsoft Learn Oracle&#xff1a;https://docs.oracle.com/en/database/oracle/oracle-database/23/lnpls/loe.html 2. 术语 SQL S…...

vue Element U 解决表格数据不更新问题

最近在使用 Vue 和 Element UI 开发后台管理系统时&#xff0c;操作表单数据重新请求表格接口后遇到表格数据不更新的问题。后面查阅了些资料&#xff0c;这通常是由于 Vue 的响应式系统没有检测到数据的变化&#xff0c;或者数据更新后没有正确地触发视图的重新渲染。以下是一…...

PeView 命令行PE文件解析工具

PeView 是一款基于C/C开发的命令行版PE文件解析工具&#xff0c;专门用于解析Windows可执行文件并提供详尽的文件结构和交互式查询功能&#xff0c;帮助用户理解和分析目标程序的内部构成&#xff0c;是逆向分析和软件调试中的重要工具&#xff0c;本次分享工具源代码及使用方法…...

微信小程序25__实现卡片变换

先看效果图 实现代码如下&#xff1a; <view class"page" style"filter:hue-rotate({{rotation}}deg)"><view class"prev" catchtap"toPrev">《《《</view><view class"next" catchtap"toNext&q…...

使用Git进行团队协作开发

使用Git进行团队协作开发 Git简介 安装Git 在Windows上安装Git 在macOS上安装Git 在Linux上安装Git 设置Git用户信息 创建Git仓库 基本Git命令 添加文件 提交更改 查看状态 克隆仓库 推送更改 获取更改 分支管理 创建分支 切换分支 合并分支 删除分支 解决合并冲突 检查冲突…...

期货跟单、量化交易模拟演示系统

一、跟单下单 在“排行榜”中选择要跟单的用户&#xff0c;合约可以跟全部&#xff0c;也可以指定跟该用户的某一合约操作&#xff0c;选定跟单的倍数&#xff08;操作手数的倍数&#xff09;/手数&#xff08;指定手数&#xff0c;可以不是对方的倍数&#xff09;&#xff0c;…...

Python小白学习教程从入门到入坑------第十八课 异常模块与包【下】(语法基础)

一、内置全局变量__name__ 在Python中&#xff0c;有一些内置的全局变量和特殊变量&#xff0c;它们是由Python解释器预定义的&#xff0c;可以在代码的任何地方直接使用。 这些变量通常用于提供关于当前解释器状态的信息&#xff0c;或者用于控制解释器的行为 在Python中&a…...

arcgis pro 3.3.1安装教程

一、获取方式&#xff1a; http://dt4.8tupian.net/2/29913a61b1500.pg3二、软件目录&#xff1a; 三、安装步骤&#xff1a; &#xff08;1&#xff09;安装软件运行环境windowsdesktop-runtime 8.0.4; &#xff08;2&#xff09;选中安装文件arcgispro_33zh_cn_190127.exe&…...

Spring 获取Cookie/Session

获取Cookie/Session Cookie & Session获取Cookie传统方法获取使用 Spring 获取 Cookie 获取Session传统方法使用 SpringBoot 获取 Session简洁获取 Session HTTP协议 自身是属于 无状态协议(默认情况下 HTTP 协议的客户端与服务端的这次通信&#xff0c;和下次的通信之间没…...

小红书接口数据查询优化指南

小红书&#xff0c;作为分享生活、购物心得与美妆护肤经验的热门社交媒体平台&#xff0c;对开发者而言&#xff0c;其数据接口具有极高的实用价值。本指南将聚焦于如何通过接口高效查询小红书数据&#xff0c;并提供清晰的步骤与示例代码。 一、前置准备 在深入查询之前&…...

C语言做网站需要创建窗口吗/百度答主招募入口官网

原文地址&#xff1a;http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop&#xff0c;今天花点时间搭建一个开发环境&#xff0c;并整理成文。 首先要了解一下Hadoop的运行模式&#xff1a; 单机模式&#xff08;standalone&#xff09; 单机…...

如何做网站备案/搜索引擎营销的主要方法包括

今天在做 wrap 的测试实验的时候&#xff0c;出现一个很奇怪的现象&#xff0c;就是加密不成功。具体表现为&#xff1a;1.加密后的文件大小为0kb。 2.加密后的文件仍然可视。 具体测试步骤如下&#xff1a; D:\Just4work\someSQLs>wrap inametest_oracle_warp.sqlPL/SQL Wr…...

记事本做网站代码/百度查重

在调用其他模块时&#xff0c;最好捕获由该模块抛出的具体的异常。如果某个被调用模块抛出了多个异常&#xff0c;那么只捕获这些异常的父类是不好的编程习惯。例如&#xff0c;如果一个模块抛出FileNotFoundException和IOException&#xff0c;那么调用这个模块的代码最好写两…...

建设企业网站的目的/线上推广的渠道有哪些

点击下面链接&#xff0c;来测测您的javaScript水平吧。 JavaScript Puzzlers! 21. function f() {} var a f.prototype, b Object.getPrototypeOf(f); a b; //false f.prototype输出Object {constructor: function}&#xff0c;是f的实例对象的原型&#xff08;实例对象就是…...

嘉兴做网站seo/百姓网推广电话

原文标题&#xff1a;Heres how you can leverge Deep Learning in your bussiness翻译&#xff1a;申利彬校对&#xff1a;白静作者&#xff1a;George Seif本文带大家三步了解深度学习在商业中的应用方法。深度学习是大家谈论的热门话题&#xff0c;利用深度学习不仅解决了很…...

做独立网站需要注意什么好/网站推广方式组合

String str; str&#xff1d;str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串&#xff0c;将剩余字符串赋值给str&#xff1b; str&#xff1d;str.substring(int beginIndex&#xff0c;int endIndex);截取str中从beginIndex开始至endIndex结束时…...