rabbitmq学习记录
同步和异步
(1)同步(按照流程一步一步做)使用openfengin传统的交互
- 响应时间长,需要将每一步的时间加起来。
- 如果一个环境出错了,整个就报错了。
- 并发压力大,前边的步骤有多大的并发量,后续就需要承担多大的并发量。
(2)异步(微服务A无需等待微服务B,之间返回,微服务B可以等他空闲的时候来消费)
- 响应时间相对更短,无需等待服务B执行完成就返回响应。
- 可以通过调节参数,减少后续服务的并发量。
削峰填谷:把高峰期的任务转移到低谷期执行。
qps:kafka>rocketmq>rabbitmq>activemq
rabbitmq有可靠的消息确认机制,并且吞吐量还行10w左右。
基础
消息发送端:生产者 消息消费端:消费者
TCP连接(三握四挥)
为了连接复用,建立了channel。
broker示例:搭建一个rabbitmq就叫一个broker,broker分成很多个虚拟机,
1.流程
生产者---------》channel---------》exchange:交换机(中转消息)--------》queue:队列(暂存消息)---------》channel-----------》消费者
2.交换机怎么知道把消息存放在那个队列中?
交换机通过binding队列
5672客户端交互 15672图形化界面交互
3.rabbitmq的使用模式
默认的交换机:
(1)简单工作队列模式:生产者–(队列)----消费者
(2)工作队列:生产者—默认交换机----(队列)----多个消费者(轮询竞争)
(3)发布订阅模式:生产者----fanout类型交换机-----多个队列-----指定消费者监听
fanout交换机,广播,将消息发布到多个队列。多个消费端对于队列的关系是竞争关系。路由键是空。
交换机类型:fanout广播、diret定向、topic通配符
(4)路由模式:生产者----direct交换机-----使用多个不同的ronuting key绑定队列-----多个消费者
交换消息的时候,指定交换机、路由键。channel和队列绑定,指定路由键。
(5)主题模式:生产者----topic交换机-----使用多个不同的ronuting key绑定队列-----多个消费者
在路由模式的基础上,使用通配符匹配。
使用
可靠性
故障:消息没有存放在消息队列,保存在队列(内存)服务器宕机丢失,消息没有消费成功。
1.消息没有发送到消息队列
解决
在生产者端进行确认,如果失败就重试。
(1)生产者端交换机和队列的确认机制:配置文件开启确认机制+配置类对mq模板增强。
(2)备份交换机制:目标交换器故障,备份交换机可以执行目标交换机的业务,或者做日志通知运维人员故障。在创建交换器的时候,可视化界面可以指定备份交换机(需要使用fanout类型)。
2.消息队列服务器宕机,内存数据丢失。
将消息持久化,默认是持久化的
3.消费端宕机或者消息没有消费成功
消费成功,消费端给mq返回ACK信息,消息队列删除该消息。
消费失败,消费端给mq返回NACK信息,重试(消费端的接口支持幂等性)。
配置手动确认返回ack通知。
削峰填谷
yml配置prefetch参数(每次取出的消息数量)
死信
消费者拒收消息+requeue=false(不把消息放到原目标队列)
消息队列溢出:消息放满了还放
消息超时(rabbitmq服务器会自动删除过期的消息,可以在创建队列时指定该队列存放消息的过期时间,也可以对消息指定过期时间。)
解决:
丢弃、入库、监听进入死信队列:消费者监听死信队列,做日志报警、人工干预。
延迟队列
消息超时时间+死信队列:某一个消息队列不监听,设置一个超时时间。超时之后进入死信队列,被消费者捕获到。
事务消息
当生产者代码出现错误的时候发送消息就会回滚,注解@RollBack(ture)。默认开启回滚事务。
相关文章:
rabbitmq学习记录
同步和异步 (1)同步(按照流程一步一步做)使用openfengin传统的交互 响应时间长,需要将每一步的时间加起来。如果一个环境出错了,整个就报错了。并发压力大,前边的步骤有多大的并发量ÿ…...

MySQL数据库基础:约束
💎我的主页:MySQL 💎1. 约束的概述 约束是作用于表中字段的规则,用于限制存储在表中的数据 目的:保证数据库中数据的正确性,有效性和完整性 💎2. 约束的分类 💎2.1 非空约束 非空…...
Java设计模式和AOP编程
Java 六大设计原则;Java 23种设计模式(在此介绍三种设计模式) Java设计模式 单例模式 应用场景:spring中bean的作用域用的就是单例模式 //基本的单例模式————懒汉式 public class student {//3.创建static修饰的成员变量p…...
【扒代码】data.py
数据增强函数 import torch from torchvision.transforms import functional as TVFdef tiling_augmentation(img, bboxes, density_map, resize, jitter, tile_size, hflip_p):# 定义一个辅助函数,用于根据给定的概率水平翻转张量def apply_hflip(tensor, apply)…...
【时时三省】unity test 测试框架 介绍(适用于C语言进行测试的)
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,关于 unity test 测试框架的介绍 2,测试框架关于源码的介绍 3,使用unity test测试C代码 4,常用断言举例 1,关于 unity test 测试框架的介绍 unity test 是 ThrowTheSwitch.org 的一个主要工程。它…...

那些你应该掌握的linux命令
一、路径授权 要给 a 用户 b 路径的所有操作权限,可以使用以下命令: sudo chown -R a:a /b sudo chmod -R 770 /b1.sudo chown -R a:a /b chown 命令用于更改文件或目录的所有者和所属组。-R 选项表示递归地应用于目录及其内部的所有文件和子目录。a:a 表示将所有…...

系统出现高CPU可能风险因素整理
文章目录 死循环无限递归序列化加解密正则表达式计算密集型任务大流量Full GC资源竞争/死锁I/O阻塞外部接口调用 死循环 死循环是最常见的原因之一。当代码中存在无穷循环(例如在多线程环境下的HashMap线程不安全问题或分页查询条件不明确导致的无限循环࿰…...
前端技术 -- 动画效果之GSAP作用与使用示例
GSAP(GreenSock Animation Platform)简介 GSAP 是一个高性能、跨平台的 JavaScript 动画库,广泛用于网页动画的制作。它提供了丰富的 API,使得开发者可以轻松创建复杂的动画效果,并且在不同浏览器和设备上都能获得一致…...

C口一拖二数据线:解锁数字生活的便捷新篇章LDR6020
添加图片注释,不超过 140 字(可选) 在科技日新月异的今天,我们的电子设备如同生活中的伴侣,无论是工作、学习还是娱乐,都离不开它们的陪伴。随着Type-C接口逐渐成为众多高端智能手机、平板电脑、笔记本电脑…...

CH07_数据绑定
第7章:数据绑定 本章目标 理解路由事件 掌握键盘输入事件 掌握鼠标输入事件 掌握多点触控输入事件 数据绑定概述 什么是数据绑定 将WPF中的至少一个带有依赖项属性的两个对象的两个属性进行绑定,使某一个依赖项属性可以更新和它绑定的属性的功…...

24.python基础(8.8)
python基础 1.搭建环境python3 1.查看是否有安装python [rootpython1 ~]# yum list installed |grep python 2.安装python3 [rootpython1 ~]#yum -y install python3 [rootpython1 ~]#python --version #查看版本信息 最新安装3.12,可以使用源码安装 开…...

【论文阅读】MobileNetV4 - Universal Models for the Mobile Ecosystem
文章目录 摘要一、介绍二、相关工作三、与硬件无关的帕累托效率四、通用倒置瓶颈五、移动MQA六、MNv4模型的设计6.1 为增强的体系结构改进NAS6.2 MNv4模型的优化 7. 结果7.1 ImageNet分类7.2 COCO目标检测 8. 强化蒸馏配方9. 结论 MobileNetV4 - 移动生态系统的通用模型 摘要 …...
大模型日报 2024-08-07
大模型日报 2024-08-07 大模型资讯 [Figure AI 把「终结者」造出来了] 简介:Figure 发布新一代人形机器人 Figure 02,具多种功能,能实时对话、自主执行任务,导航用 VLM,电池续航提升,机械手先进,…...
区块链ddos防护怎么做
区块链ddos防护怎么做?在区块链这一新兴技术的浪潮中,我们见证了无数创新应用的诞生与繁荣。然而,在这片充满机遇的蓝海中,也潜藏着不容忽视的暗流——分布式拒绝服务攻击(DDoS)。DDoS攻击,如同网络世界的…...

在Linux中认识pthread库
int *pnullptr; pnullptr; *pnullptr; 指针变量做右值也是变量拥有空间。去承装数据。 *p代表指针所指向的空间,及0号地址,及往虚拟地址的0号地址处写8个字节的数据,全部写为0. (此操作不允许) 进程和线程的关系如…...

LVS 负载均衡
目录 LVS 体系结构 LVS 相关概念术语 lvs 集群常见类型 实验一: LVS NAT模式 LVS NAT特性 实验二: LVS DR模式 LVS DR特性 LVS是Linux virtual server的缩写,是一个高性能的、开源的负载均衡器,它运行于Linux操作系统之上…...

在Excel中启用宏 (~ ̄▽ ̄)~
一、启用宏 打开任意Excel,点击屏幕左上角的文件选项,然后选择Excel选项窗口。在Excel选项窗口中,选择信任中心按钮;在信任中心设置窗口中,选择宏设置,启用所有宏(不推荐,潜在风险&a…...

连接投影仪/显示器只能扩展不能复制的解决方案
原文章:https://iknow.lenovo.com.cn/detail/121481 故障现象: 笔记本外接投影仪/显示器后,笔记本屏幕有显示,但投影仪却只有背景或没有显示; 原因分析: 此现象多发生在双显卡机型上,笔记本屏…...

数据库基础知识
数据库基础知识 主流的数据库连接MySQL理解mysql和mysqld和数据库简单对数据库操作MySQL构架SQL分类存储引擎总结 主流的数据库 SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。Oracle: 甲骨文产品,适合大型项目…...
java JVM 锁消除
Java虚拟机 (JVM) 中的锁消除 (Lock Elimination) 是一种编译时优化技术,用于减少或完全去除不必要的同步操作。锁消除可以显著提高程序的性能,尤其是在多线程环境中。下面详细介绍锁消除的工作原理和技术细节。 锁消除的目的 锁消除的目标是在编译阶段…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

CSS3相关知识点
CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...