网站收录是什么意思/seo研究协会网app

网站收录是什么意思,seo研究协会网app,做钢管的去什么网站发信息,七牛云存储 wordpress一、消费流程图 消息在消费出现异常的时候,将一直保留在消息队列,所以你会看到以下奇怪的现象: 消息队列仅有5个消息, 投递速度也非常快,结果却一直无法消费掉。 二、重试策略 重试机制的使用场景:重试机制…

一、消费流程图

在这里插入图片描述

消息在消费出现异常的时候,将一直保留在消息队列,所以你会看到以下奇怪的现象:

在这里插入图片描述
消息队列仅有5个消息, 投递速度也非常快,结果却一直无法消费掉。

二、重试策略

重试机制的使用场景:重试机制适用于那些可能因为临时问题(如网络问题、外部服务不可用等)导致处理失败的情况。

自定义重试逻辑:可以通过自定义错误处理器(如 RepublishMessageRecoverer)来实现更复杂的重试逻辑,例如记录重试次数并根据条件决定是否重新投递。

无限重试可能导致问题:如果消息本身存在问题(如格式错误),无限重试会导致大量日志输出,且可能阻塞队列。

本文就是中了此招,带来的后果就是SLS费用剧增。

1、重试次数

开启重试,设置重试的次数、间隔时间。

在计算间隔时间的时候,使用指数级增长,而非简单的倍数。

        listener:simple:retry:enabled: truemax-attempts: 5  # 最大重试次数initial-interval: 10000  # 初始重试间隔(毫秒)max-interval: 30000 # 最大重试间隔(毫秒)multiplier: 3 # 重试间隔的乘数因子

2、死信队列

为了避免消息无限重试,建议配置死信队列。当消息达到最大重试次数后,将其发送到死信队列,以便后续处理。

        listener:simple:default-requeue-rejected: false

通过合理配置重试机制和死信队列,可以有效避免消息无限重试导致的问题,同时确保消息的可靠处理。

建立死信消息监听者,对消息的最后处理,如果还是失败,则发送告警消息给相关人员。

当消费者在处理消息时抛出异常且达到最大重试次数后,消息会被拒绝并发送到死信队列,从而避免消息丢失并便于后续处理。

三、消息确认模式

在 Spring AMQP 的默认配置中,acknowledge-mode 的默认值是 AUTO,即自动确认模式。

最终rabbitmq的配置见下:

        listener:simple:retry:enabled: truemax-attempts: 5initial-interval: 10000max-interval: 30000multiplier: 3acknowledge-mode: autodefault-requeue-rejected: false

自动确认模式(AUTO)

在自动确认模式下,当消费者接收到消息后,Spring AMQP 会自动向 RabbitMQ 发送确认消息(ACK),表示消息已被成功消费。这意味着:

  • 优点:实现简单,不需要手动确认消息,适合简单的消费场景。
  • 缺点:如果消费者在处理消息时抛出异常,消息会被认为已经消费成功,从队列中移除,不会重新投递。这可能导致消息丢失。

手动确认模式(MANUAL)

在手动确认模式下,消费者需要显式地调用确认方法(basicAck 或 basicNack)来确认消息。这意味着:

  • 优点:可以更灵活地控制消息的确认时机,确保消息在成功处理后才被确认,从而避免消息丢失。
  • 缺点:实现相对复杂,需要在代码中手动处理确认逻辑。

四、总结

消息在消费的时候,如果出现异常,直接抛弃,不想进入重试流程。
你可能会配置修改如下:

        listener:simple:retry:enabled: false

回到最上面的流程图,其实还是无法解决消息消费失败的死循环。

虽然不会进入重试, 但是在消费消息的时候,由于抛异常,又会进入消息队列。

最终导致死循环。

解决方法是: 对于不想要重试,而又不陷入死循环。那么就只有一个办法,使用个大大的try-catch住消息监听方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74541.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STM32】知识点介绍二:GPIO引脚介绍

文章目录 一、概述二、GPIO的工作模式三、寄存器编程 一、概述 GPIO(英语:General-purpose input/output),即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来,可实现与外部通讯、…

【赵渝强老师】达梦数据库的数据库对象

达梦数据库中包含各种数据库对象,主要分为两大类型:基本数据库对象和复杂数据库对象。下面分别进行介绍。 视频讲解如下 【赵渝强老师】达梦数据库的数据库对象 一、 基本数据库对象 常见的基本数据库对象有:表、索引、视图、序列、同义词等…

26考研——树与二叉树_树、森林(5)

408答疑 文章目录 二、树、森林树的基本概念树的定义和特性树的定义树的特性 基本术语树的基本术语和概念祖先、子孙、双亲、孩子、兄弟和堂兄弟结点的层次、度、深度和高度树的度和高度分支结点和叶结点有序树和无序树路径和路径长度 森林的基本术语和概念森林的定义森林与树的…

【HarmonyOS Next之旅】DevEco Studio使用指南(六)

目录 1 -> 在模块中添加Ability 1.1 -> Stage模型添加UIAbility 1.1.1 -> 在模块中添加UIAbility 1.1.2 -> 在模块中添加Extension Ability 2 -> 创建服务卡片 2.1 -> 概述 2.2 -> 使用约束 2.3 -> 创建服务卡片 2.4 -> 创建动态/静态卡片…

Excel多级联动下拉菜单的自动化设置(使用Python中的openpyxl模块)

1 主要目的 在Excel中,经常会遇到需要制作多级联动下拉菜单的情况,要求单元格内填写的内容只能从指定的多个选项中进行选择,并且需要设置多级目录,其中下级目录的选项内容要根据上级目录的填写内容确定,如下图所示&am…

3.25-1 postman执行+弱网测试

1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 选择文件 点击导入 导入的接口 三.多接口运行 (1)集合右键,点击run ,运行多个接口 2.编辑环境,集合,执行次数等 运行多个接口 四.运行多个接口…

Pear Admin Flask 开发问题

下载代码请复制以下命令到终端执行 git clone https://gitee.com/pear-admin/pear-admin-flask 于是我下载git 完成安装后: 安装 Git 后出现的页面是 “Git for Windows 的版本发布说明(Release Notes)”,通常会在安装完成后自动弹…

【C语言】文件操作(详解)

个人主页 今天我们来讲一下有关文件的相关操作,希望看完这篇文章对你有所帮助,大力感谢你对博主的支持! 文章目录 ⭐一、为什么使用文件🎉二、什么是文件2.1 程序文件2.2 数据文件2.3 文件名 🎡三、二进制文件和文本…

基于web的家政服务网站

内容摘要 由于互联网的使用,人们在管理、应用、服务等领域使用数据更加简洁、方便,大大提高了工作效率。互联网正逐渐融入我们的生活,影响和改变我们的生活。 家政服务管理系统是典型的信息管理系统(MIS)。其开发主要…

【leetcode hot 100 739】每日温度

解法一&#xff1a;暴力解法 class Solution {public int[] dailyTemperatures(int[] temperatures) {int ntemperatures.length; // 指向要找下一个更高温度的地方int[] result new int[n];for(int left0;left<n;left){int rightleft1; // 指向正在找最高温度的地方wh…

算法 | 麻雀搜索算法原理,公式,改进算法综述,应用场景及matlab完整代码

一、麻雀搜索算法(SSA)原理 1. 算法基础 麻雀搜索算法(Sparrow Search Algorithm, SSA)是2020年提出的一种群体智能优化算法,灵感来源于麻雀群体的觅食与反捕食行为。算法将麻雀分为三类角色:发现者(Producer):适应度最高,负责探索全局最优区域;加入者(Follower)…

CAT1模块 EC800M HTTP 使用后续记录

记录一下 CAT1 模块EC800 HTTP 使用后续遇到的问题 by 矜辰所致目录 前言一、一些功能的完善1.1 新的交互指令添加1.2 连不上网络处理 二、问题出现三、分析及解决3.1 定位问题3.2 问题分析与解决3.2.1 查看变量在内存中的位置 3.3 数据类型说明3.3.1 常用格式化输出符号…

单纯形法之大M法

1. 问题背景与标准化 在求解某些线性规划问题时&#xff0c;往往难以直接找到初始的基本可行解。特别是当约束中存在等式或 “≥” 类型的不等式时&#xff0c;我们需要引入人工变量来构造一个初始可行解。 考虑如下标准形式问题&#xff08;假设为最大化问题&#xff09;&am…

Springboot集成Debezium监听postgresql变更

1.创建springboot项目引入pom <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.debezium</groupI…

报错 standard_init_linux.go:228: exec user process caused: exec format error

docker logs 容器名 报错&#xff1a; standard_init_linux.go:228: exec user process caused: exec format error 或者 standard_init_linux.go:228: exec user process caused: input/output error 排查思路 1、检查源镜像的框架是否正确&#xff0c;是否amd64&#x…

Go 代理爬虫

现在注册&#xff0c;还送15美金注册奖励金 --- 亮数据-网络IP代理及全网数据一站式服务商 使用代理服务器&#xff0c;通过 Colly、Goquery、Selenium 进行网络爬虫的基础示例程序 本仓库包含两个分支&#xff1a; basic 分支包含供 Go Proxy Servers 这篇文章改动的基础代码…

STM32实现智能温控系统(暖手宝):PID 算法 + DS18B20+OLED 显示,[学习 PID 优质项目]

一、项目概述 本文基于 STM32F103C8T6 单片机&#xff0c;设计了一个高精度温度控制系统。通过 DS18B20 采集温度&#xff0c;采用位置型 PID 算法控制 PWM 输出驱动 MOS 管加热Pi膜&#xff0c;配合 OLED 实时显示温度数据。系统可稳定将 PI 膜加热至 40℃&#xff0c;适用于…

从零开始:使用Luatools工具高效烧录Air780EPM核心板项目的完整指南

本文将深入讲解如何使用Luatools工具烧录一个具体的项目到Air780EPM开发板中。如何使用官方推荐的Luatools工具&#xff08;一款跨平台、命令行驱动的烧录利器&#xff09;&#xff0c;通过“环境配置→硬件连接→参数设置→一键烧录”四大步骤&#xff0c;帮助用户实现Air780E…

2024年认证杯SPSSPRO杯数学建模C题(第二阶段)云中的海盐全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现&#xff1a; 巴黎气候协定提出的目标是&#xff1a;在2100年前&#xff0c;把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平&#xff0c;并为1.5摄氏度而努力。但事实上&#xff0c;许多之前的…

大疆上云api介绍

概述 目前对于 DJI 无人机接入第三方云平台,主要是基于 MSDK 开发定制 App,然后自己定义私有上云通信协议连接到云平台中。这样对于核心业务是开发云平台,无人机只是其中一个接入硬件设备的开发者来说,重新基于 MSDK 开发 App 工作量大、成本高,同时还需要花很多精力在无人…