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

Flink概念知识讲解之:Restart重启策略配置

Flink概念知识讲解之:Restart重启策略配置

当 Task 发生故障时,Flink 需要重启出错的 Task 以及其他受到影响的 Task ,以使得作业恢复到正常执行状态。

Flink 通过重启策略和故障恢复策略来控制 Task 重启:重启策略决定是否可以重启以及重启的间隔;故障恢复策略决定哪些 Task 需要重启。

重启策略

Flink 作业如果没有定义重启策略,则会遵循集群启动时加载的默认重启策略。 如果提交作业时设置了重启策略,该策略将覆盖掉集群的默认策略。

可以通过 Flink 的配置文件 flink-conf.yaml 来设置默认的重启策略。配置参数restart-strategy 定义了采取何种策略。 如果没有启用 checkpoint,就采用“不重启”策略。如果启用了 checkpoint 且没有配置重启策略,那么就采用固定延时重启策略, 此时最大尝试重启次数由 Integer.MAX_VALUE 参数设置。

restart-strategy从1.17版本开始之后改为restart-strategy.type

每个重启策略都有自己的一组配置参数来控制其行为。 这些参数也在配置文件中设置。 后文的描述中会详细介绍每种重启策略的配置项。

restart-strategy的可选值包括以下:

  • none, off, disable: 不重启策略。
  • fixeddelay, fixed-delay :固定延时重启策略。
  • failurerate, failure-rate: 故障率重启策略。
  • exponentialdelay, exponential-delay: 指数延迟重启策略。

接下来,我们来分别详细描述一下这些重启策略的原理。

fixed-delay 固定延时重启策略

固定延时重启策略按照给定的次数尝试重启作业。 如果尝试超过了给定的最大次数,作业将最终失败。 在连续的两次重启尝试之间,重启策略等待一段固定长度的时间。

通过在 flink-conf.yaml 中设置如下配置参数,默认启用此策略。

restart-strategy: fixed-delay

配置项:

  • estart-strategy.fixed-delay.attempts 默认值 1 ,也就是默认重启1一次。请注意这个和没有配置重启策略的默认值不一样,没有配置策略,默认值为 Integer.MAX_VALUE
  • restart-strategy.fixed-delay.delay 默认值 1 s ,两次连续重新启动尝试之间的延迟时间。如:1 min 、 20 s

举例如下:

restart-strategy: fixed-delay
restart-strategy.fixed-delay.attempts: 3
restart-strategy.fixed-delay.delay: 10 s

在这种配置下,如果任务从 “Restarting” 状态变成了 “Running”,然后再次因为异常变成 “Restarting”,那么重启次数并不会重新计数。 restart-strategy.fixed-delay.attempts 这个参数设置的是在整个任务运行期间最多允许重启的次数,而不是连续失败时的最多重启次数。也就是说,无论任务在运行过程中的任何时间点出现异常,只要累计的重启次数没有超过 5 次,都会尝试进行重启。因此,即使任务在重启后恢复运行,但后续再次失败,重启次数仍会继续累计,而不会重新计数。

failure-rate 故障率重启策略

故障率重启策略在故障发生之后重启作业,但是当故障率(每个时间间隔发生故障的次数)超过设定的限制时,作业会最终失败。 在连续的两次重启尝试之间,重启策略等待一段固定长度的时间。

通过在 flink-conf.yaml 中设置如下配置参数,默认启用此策略。

restart-strategy: failure-rate

配置项:

  • restart-strategy.failure-rate.max-failures-per-interval: 这个设置是在给定的时间间隔内允许的最大失败次数。例如,如果设置为 3,则表示在设定的时间间隔内,如果作业失败了超过3次,Flink将不再尝试重启作业。
  • restart-strategy.failure-rate.failure-rate-interval: 这个设置是用于测量故障率的时间窗口。这个时间间隔与上一个参数一起使用,例如,如果设置为 “1 min”,则 Flink 会在每个 “1 min” 的时间段内跟踪作业失败次数,并与 max-failures-per-interval 的设置进行比较。
  • restart-strategy.failure-rate.delay: 这是连续两次尝试重新启动作业之间的延迟时间。例如,如果作业失败后立即尝试进行重启,然后又失败,此设置将使 Flink 在下一次尝试重新启动之前等待指定的时间。此设置有助于避免作业在出现持续性问题时过于频繁地尝试重启。

举例如下:

restart-strategy: failure-rate
restart-strategy.failure-rate.max-failures-per-interval: 3
restart-strategy.failure-rate.failure-rate-interval: 5 min
restart-strategy.failure-rate.delay: 10 s

exponential-delay 指数延迟重启策略

指数延迟重启策略在两次连续的重新启动尝试之间,重新启动的延迟时间不断呈指数增长,直到达到最大延迟时间。 然后,延迟时间将保持在最大延迟时间。

当作业正确地执行后,指数延迟时间会在一些时间后被重置为初始值,这些阈值可以被配置。

restart-strategy.type: exponential-delay

配置项:

  • restart-strategy.exponential-delay.attempts-before-reset-backoff

    • 默认值 infinite ,如果重新启动策略已设置为指数延迟,则表示Flink 在任务失败前重试执行的次数。一旦 backoff 被重置为其初始值,该数字将被重置。
  • restart-strategy.exponential-delay.backoff-multiplier:

    • 指数延迟重启策略的基本工作原理是,在每一次 任务失败并需要重启时,系统都会等待一段时间,这段时间就被称为 “backoff”。 系统初始的 “backoff” 时间由 restart-strategy.exponential-delay.initial-backoff 这个配置项来设定。

      当任务连续失败时,为了防止过于频繁的重启,可能使得问题更加严重,系统会在每次重启之前将 “backoff” 时间进行延长。这个延长就是按照指数递增的:每一次延长的 “backoff” = 当前的 “backoff” * restart-strategy.exponential-delay.backoff-multiplier

      比如说,如果你的 initial-backoff 是 10s,而 backoff-multiplier 是 2,那么:

      • 第1次重启会等待 10s
      • 第2次重启会等待 10s * 2 = 20s
      • 第3次重启会等待 20s * 2 = 40s
      • 以此类推

      通过这种方式,Flink 可以在遇到持续性的问题时,通过逐渐增加重启间隔,为系统提供恢复的时间,同时也避免了过于频繁的重启导致的系统压力。

  • restart-strategy.exponential-delay.initial-backoff:

    • restart-strategy.exponential-delay.initial-backoff 配置项用于设置每次重新启动任务时的初始暂停(backoff)时间。默认值是 1 秒。这个配置项的影响是,在任务失败后,将等待这个初始暂停时间后才进行第一次重启尝试。
  • restart-strategy.exponential-delay.jitter-factor:

    • restart-strategy.exponential-delay.jitter-factor 默认值是0.1,表示实际重启间隔在计算出的间隔基础上会添加或减去最多10%的时间。 假设按照指数间隔计算出的重启间隔是100秒,那么加入抖动因子后,实际的重启间隔将在90秒到110秒之间。

      例如,假设我们的 backoff 时间是 10s,乘数为 2,抖动因子为 0.1。那么在第一次任务失败后,重启的等待时间将在 9s 到 11s 之间(±10%)。如果任务再次失败,那么下一次的等待时间将在 (2*10s)90% 到 (210s)*110% 之间,即 18s 到 22s。这样就能够在一定程度上避免多个作业同时重启的问题,从而更好地利用资源,提高系统的稳定性和效率。

  • restart-strategy.exponential-delay.max-backoff:

    • restart-strategy.exponential-delay.max-backoff 是 Flink 的指数延时重启策略中的一个配置项,其作用是设置每次尝试重新启动任务之间的最大暂停持续时间。其默认值是 “1 min”,代表最大的等待重启时间是 1 分钟。
    • 在 exponential-delay 类型的重启策略中,每次任务失败后的重启等待时间会按照一个乘数进行增长,这个乘数是由 restart-strategy.exponential-delay.backoff-multiplier 配置项进行控制的。但无论这个乘数设置为多少,实际的等待时间都不会超过 restart-strategy.exponential-delay.max-backoff 所设置的值。
  • restart-strategy.exponential-delay.reset-backoff-threshold:

    • restart-strategy.exponential-delay.reset-backoff-threshold"是 Flink 指数延迟重启策略中的一个配置项,其默认值为 “1h”。 这个参数的作用是,设定一个时间阈值,当作业能够成功运行超过这个阈值的时间之后,下一次如果出现任务失败,计算重启时间间隔也就是backoff会被重置为初始值。换句话说,这是判断系统是否已经从错误恢复,并将失败尝试次数重置的指标。

    • 为什么要这么设计呢?

      在指数延迟重启策略中,每次任务失败后的重启等待时间会按照一个乘数进行增长,这个乘数是由 restart-strategy.exponential-delay.backoff-multiplier 配置项进行控制的。然而,这种策略存在一个问题,也就是如果曾有过一段时间的失败,会导致后续的重启间隔变得非常长。

      因此,restart-strategy.exponential-delay.reset-backoff-threshold 就派上了用场。如果一个任务在一段时间(例如 “1h”)内没有失败,那么我们可以认为,这个任务已经从之前的错误中恢复过来。那么下一次如果再出现任务失败,我们就可以将backoff重置为初始值,而不需要采取以前因为连续错误而逐渐增加的延迟时间。

举例如下:

restart-strategy: exponential-delay
restart-strategy.exponential-delay.initial-backoff: 10 s
restart-strategy.exponential-delay.max-backoff: 2 min
restart-strategy.exponential-delay.backoff-multiplier: 1.4
restart-strategy.exponential-delay.reset-backoff-threshold: 10 min
restart-strategy.exponential-delay.jitter-factor: 0.1
restart-strategy.exponential-delay.attempts-before-reset-backoff: 10

默认重启策略

默认情况下,没有开启 checkpoint ,不重启。开启 checkpoint ,默认采用固定延时重启策略。但是默认 1s 重启一次,且会一直尝试重启,没有上限次数。这种频繁无限的默认重启策略是不合理的,可能会导致外部组件雪崩,也会一直占用计算资源。

所以在 1.19版本,默认策略改为指数延迟重启策略。我们强烈推荐 Flink 用户使用指数延迟重启策略,因为使用这个策略时, 作业偶尔异常可以快速重试,作业频繁异常可以避免外部组件发生雪崩。原因如下所示:

  • 所有的重启策略在重启作业时都会延迟一定的时间来避免频繁重试对外部组件的产生较大压力。
  • 除了指数延迟重启策略以外的所有重启策略延迟时间都是固定的。
  • 如果延迟时间设置的过短,当作业短时间内频繁异常时,会频繁重启访问外部组件的主节点,可能导致外部组件发生雪崩。例如:大量的 Flink 作业都在消费 Kafka,当 Kafka 集群出现故障时大量的 Flink 作业都在同一时间频繁重试,很可能导致雪崩。
  • 如果延迟时间设置的过长,当作业偶尔失败时需要等待很久才会重试,从而导致作业可用率降低。
  • 指数延迟重启策略每次重试的延迟时间会指数递增,直到达到最大延迟时间。
  • 延迟时间的初始值较短,所以当作业偶尔失败时,可以快速重试,提升作业可用率。
  • 当作业短时间内频繁失败时,指数延迟重启策略会降低重试的频率,从而避免外部组件雪崩。
  • 除此以外,指数延迟重启策略的延迟时间支持抖动因子 (jitter-factor) 的配置项。
  • 抖动因子会为每次的延迟时间加减一个随机值。
  • 即使多个作业使用指数延迟重启策略且所有的配置参数完全相同,抖动因子也会让这些作业分散在不同的时间重启。

相关文章:

Flink概念知识讲解之:Restart重启策略配置

Flink概念知识讲解之:Restart重启策略配置 当 Task 发生故障时,Flink 需要重启出错的 Task 以及其他受到影响的 Task ,以使得作业恢复到正常执行状态。 Flink 通过重启策略和故障恢复策略来控制 Task 重启:重启策略决定是否可以…...

Golang中使用 Mqtt

MQTT 是一种基于发布/订阅模式的 轻量级物联网消息传输协议 ,可以用极少的代码和带宽为联网设备提供实时可靠的消息服务,它广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等行业。 本文主要介绍如何在 Golang 项目中使用 github.com/eclips…...

腾讯云下架印度云服务器节点,印度云服务器租用何去何从

近日,腾讯云下架印度云服务器节点的消息引起了业界的广泛关注。这一变动让许多依赖印度云服务器的用户开始担忧,印度云服务器租用的未来究竟在何方? 从印度市场本身来看,其云服务市场的潜力不容小觑。据 IDC 报告,到 2…...

STM32内置Flash

一、原理 利用flash存储用户数据需要注意查看,用户数据是否会覆盖芯片运行程序。 IAP(在程序中编程)利用程序修改程序本身,和OTA是一个原理。IAP在程序中编程支持任意一种通信下载。 ICP(在电路中编程,通…...

面试:C++类成员初始化顺序

1、非静态数据成员:按它们在类定义的声明顺序初始化,不会按它们在初始化列表的顺序。 2、静态数据成员:在main函数启动之前,并且只初始化一次 3、基类构造函数:如果类从一个或多个基类继承而来,基类的构造…...

约束的笔记

约束的分类 为什么需要约束 为了保证数据的完整性 ①实体完整性(Entity Integrity)(同一个表中,不能存在两条完全相同无法区分的记录) ②域完整性(Domain Integrity) ③引用完整性(Referential Integ…...

【Docker】安装registry本地镜像库,开启Https功能

下载镜像 docker pull registry:2 需要启动https功能,就要生成服务端的自签名的证书和私钥,以及在docker客户端安装这个经过签名的证书。 第一步:生成公私钥信息,第二步,制作证书签名申请文件, 第三步&…...

el-tree拖拽光标错位问题

背景:el-tree实现的分类树增加拖拽功能后,当分类树由于数量较多产生滚动条,如果分类树已滚动,进行拖拽时会造成光标错位的问题: 原因:el-tree拖拽光标定位的高度并未加上滚动的高度解决:将滚动的样式属性放…...

Linux权限

目录 一.Linux权限的概念 二.Linux权限管理 1.文件访问者的分类 2.文件类型和访问权限 1.文件类型 2.基本权限 3.文件权限的表示方法 1.字符表示法 2.八进制表示法 4.文件权限的相关访问方法 1.chmod 2.chown 3.chgrp 4.粘滞位 三.权限总结 一.Linux权限的概念 …...

mysql binlog 日志分析查找

文章目录 前言一、分析 binlog 内容二、编写脚本结果总结 前言 高效快捷分析 mysql binlog 日志文件。 mysql binlog 文件很大 怎么快速通过关键字查找内容 一、分析 binlog 内容 通过 mysqlbinlog 命令可以看到 binlog 解析之后的大概样子 二、编写脚本 编写脚本 search_…...

win32汇编环境,窗口程序中对按钮控件常用操作的示例

;运行效果 ;win32汇编环境,窗口程序中对按钮控件常用操作的示例 ;常用的操作,例如创建按钮控件,使其无效,改变文本,得到文本等。 ;将代码复制进radasm软件里,直接就可以编译运行。重点部分加备注。 ;>&g…...

风水算命系统架构与功能分析

系统架构 服务端:Java(最低JDK1.8,支持JDK11以及JDK17)数据库:MySQL数据库(标配5.7版本,支持MySQL8)ORM框架:Mybatis(集成通用tk-mapper,支持myb…...

如何在 Ubuntu 22.04 上安装和配置邮件服务器教程

简介: 在本指南中,我们将演示如何在 Ubuntu 22.04 上安装和配置邮件服务器,因为大中型公司可以从拥有私人邮件服务器中获益匪浅。通过使用邮件服务器,可以密切监视所有电子邮件流量。此外,自定义设置的灵活性使得建立…...

后门原理与实践

实验目录 windows主机与kali虚拟机实现互联互通使用netcat获取主机操作Shell,cron启动使用socat获取主机操作Shell, 任务计划启动使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell使用MSF meterpreter生成获取目标主机…...

代理模式详解与应用

代理模式(Proxy Pattern),也称为委托模式或 surrogate 模式,是一种结构型设计模式。它为其他对象提供一个代理以控制对这个对象的访问。通过引入代理对象,可以在不改变原始对象接口的前提下,添加额外的功能…...

C#,动态规划问题中基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法与源代码

1 分词 分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注、句法分析、词向量以及文本分析的质量。英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下不需要考虑分词…...

基于单片机的智能家居排气扇系统设计

1系统方案设计 本设计基于单片机的智能家居排气扇系统采用STM32单片机作为主控制器,通过DHT11温湿传感器和MQ-2烟雾传感器实现温度、湿度、烟雾检测,在自动模式下,可以根据烟雾浓度通过PWM调速的方式自动调节排气扇的速度,而在手…...

基于JAVA+SpringBoot+Vue的二手车交易系统

基于JAVASpringBootVue的二手车交易系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽…...

【JVM-2.2】使用JConsole监控和管理Java应用程序:从入门到精通

在Java应用程序的开发和运维过程中,监控和管理应用程序的性能和资源使用情况是非常重要的。JConsole是Java Development Kit(JDK)自带的一款图形化监控工具,它可以帮助开发者实时监控Java应用程序的内存、线程、类加载以及垃圾回收…...

windows及linux 安装 Yarn 4.x 版本

1. 确保系统环境准备 a. 安装 Node.js Yarn 依赖于 Node.js,所以需要先安装 Node.js。前往 Node.js 官网 下载并安装适合你的 Windows 版本的 Node.js(推荐 LTS 版本)。安装完成后,打开命令提示符(CMD)或 PowerShell,验证安装:node -v npm -v如果显示版本号,则表示安…...

VS2015 + OpenCV + OnnxRuntime-Cpp + YOLOv8 部署

近期有个工作需求是进行 YOLOv8 模型的 C 部署,部署环境如下 系统:WindowsIDE:VS2015语言:COpenCV 4.5.0OnnxRuntime 1.15.1 0. 预训练模型保存为 .onnx 格式 假设已经有使用 ultralytics 库训练并保存为 .pt 格式的 YOLOv8 模型…...

1.两数之和--力扣

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1…...

MySQL库表的操作

目录 一、库的操作 1.1库的创建 1.2字符集和校验规则 1.2.1 查看系统默认字符集以及校验规则 1.2.2 查看数据库支持的字符集 1.2.3 查看数据库支持的字符集校验规则 1.2.4 校验规则对数据库的影响 1.3操纵数据库 1.3.1显示库 1.3.2显示创建语句 1.3.3修改数据库 1.3…...

【强化学习】深度确定性策略梯度算法(DDPG)详解(附代码)

📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...

单片机实物成品-011 火灾监测

火灾监测(20个版本) 版本20: oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...

牛客网刷题 ——C语言初阶(6指针)——BC106 上三角矩阵判定

1. 题目描述——BC106 上三角矩阵判定 牛客网OJ题链接 描述 KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。 示例 输入: 3 1 2 3 0 4 5 0 0…...

Mysql--重点篇--索引(索引分类,Hash和B-tree索引,聚簇和非聚簇索引,回表查询,覆盖索引,索引工作原理,索引失效,索引创建原则等)

索引是数据库中用于加速查询操作的重要机制。通过索引,MySQL可以快速定位到满足查询条件的数据行,而不需要扫描整个表。合理的索引设计可以显著提高查询性能,但不合理的索引可能会导致性能下降和磁盘空间浪费。因此,理解索引的工作…...

Vue3框架核心功能点响应式数据reactive、组合式API setup、computed、组件通信、路由导航,状态管理vuex、pinia等的实战示例代码

记录几个Vue3框架核心功能点,例如响应式数据reactive、组合式API setup、computed、组件通信、路由导航,状态管理vuex、pinia……等实战示例代码: 一、响应式数据(Reactive Data) 创建响应式对象 使用reactive函数创建…...

Gitlab-Runner配置

原理 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作…...

多台PC共用同一套鼠标键盘

当环境中有多个桌面 pc 需要操作的时候,在 多台 pc 之间切换会造成很多的不方便 可以通过远程进行连接,但是有一个更好的方案是让多台机器之间共用同一套键盘鼠标 常用的解决方案 synergy 和 sharemouse,通过移动光标在不同的 pc 间切换 s…...

学会使用computed计算属性与watch监听(小白学习笔记)

1. 使用不同方法实现 姓名案例 需求: 根据data中 firstName 和 lastName 的值 来动态地展示全名 1.1. 插值语法 如果只使用学过的插值语法 那可以在模板中直接使用两个变量 . 但是如果需要对数据进行计算等处理 就需要在插值语法里写复杂的js表达式. 这样就违背了vue风格指…...

atoi函数的概念和使用案例

atoi 函数是 C 语言标准库中的一个函数&#xff0c;它用于将字符串转换为整数。atoi 的名称是 “ASCII to integer” 的缩写。该函数定义在 <stdlib.h> 头文件中。 概念 atoi 函数会从字符串的开始位置开始转换&#xff0c;直到遇到第一个非数字字符或遇到字符串结束符…...

unittest VS pytest

以下是 unittest 和 pytest 框架的对比表格&#xff1a; 特性unittestpytest设计理念基于类的设计&#xff0c;类似于 Java 的 JUnit更简洁&#xff0c;基于函数式编程设计&#xff0c;支持类和函数两种方式测试编写需要继承 unittest.TestCase 类&#xff0c;方法以 test_ 开…...

B2C API安全警示:爬虫之外,潜藏更大风险挑战

在数字化时代&#xff0c;B2C&#xff08;Business-to-Consumer&#xff09;电子商务模式已成为企业连接消费者、推动业务增长的重要桥梁。而B2C API&#xff08;应用程序编程接口&#xff09;作为企业与消费者之间数据交互的桥梁&#xff0c;其安全性更是至关重要。然而&#…...

大型语言模型(LLM)中的tokens是什么

大型语言模型(LLM)中的tokens是什么 在大型语言模型(LLM)中,tokens是文本处理的基本单位,它可以是一个单词、一个字符、一个标点符号,或者是一个特殊的标记。以下是关于tokens的详细介绍及举例: 一、tokens的定义和作用 定义:tokens是将文本分割成的一个个有意义的…...

自动驾驶---E2E架构演进

1 背景 模型最早应用的自动驾驶模块就是感知层面&#xff0c;随着技术的发展&#xff0c;逐渐开始应用到决策规划等其它模块。端到端自动驾驶架构是一种基于深层神经网络模型和方法的自动驾驶技术模式。目前一段式端到端系统只有在英伟达早期所做的demo中实现&#xff0c;再者就…...

w~自动驾驶~合集16

我自己的原文哦~ https://blog.51cto.com/whaosoft/12765612 #SIMPL 用于自动驾驶的简单高效的多智能体运动预测基准 原标题&#xff1a;SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving 论文链接&#xff1a;https://ar…...

python学opencv|读取图像(三十)使用cv2.getAffineTransform()函数倾斜拉伸图像

【1】引言 前序已经学习了如何平移和旋转缩放图像&#xff0c;相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;二十七&#xff09;使用cv2.warpAffine&#xff08;&#xff09;函数平移图像-CSDN博客 python学opencv|读取图像&#xff08;二十八&#xff0…...

Java异常处理

1.异常是程序运行过程中出现的非正常现象&#xff0c;例如输入错误、需要处理的文件不存在&#xff0c;在网络上传输数据但是网络没有连接等2.在java中我们把异常分为&#xff1a;错误&#xff08;Error&#xff09;和异常&#xff08;Exception&#xff09;Exception类有自己的…...

STM32-DMA数据转运

注&#xff1a;DMA对应的库函数文件讲解 DMA_GetITStatus(uint32_t DMAy_IT) 是一个用于检查DMA&#xff08;直接存储器访问&#xff09;中断状态的库函数。它通常在使用STM32系列微控制器及其标准外设库时被调用。此函数的主要作用是返回指定DMA通道的特定中断标志的状态&…...

ASP.NET Core 实现微服务 - Elastic APM

这次要给大家介绍的是Elastic APM &#xff0c;一款应用程序性能监控组件。APM 监控围绕对应用、服务、容器的健康监控&#xff0c;对接口的调用链、性能进行监控。在我们实施微服务后&#xff0c;由于复杂的业务逻辑&#xff0c;服务之间的调用会像蜘蛛网一样复杂。有了调用链…...

Stable Diffusion本地部署教程(附安装包)

想使用Stable Diffusion需要的环境有哪些呢? python3.10.11(至少也得3.10.6以上):依赖python环境NVIDIA:GPUgit:从github上下载包(可选,由于我已提供安装包,你可以不用git)Stable Diffusion安装包工具包: NVIDIA:https://developer.nvidia.com/cuda-toolkit-archiv…...

图片和短信验证码(头条项目-06)

1 图形验证码接口设计 将后端⽣成的图⽚验证码存储在redis数据库2号库。 结构&#xff1a; {img_uuid:0594} 1.1 创建验证码⼦应⽤ $ cd apps $ python ../../manage.py startapp verifications # 注册新应⽤ INSTALLED_APPS [django.contrib.admin,django.contrib.auth,…...

天气app的收获

天气app的收获 无论如何&#xff0c;是基于MVC模式&#xff0c;但都是从UI页面开始设计&#xff0c;然后根据输入的城市名称&#xff0c;将其传入到model层&#xff0c;进行相对应的处理。 对于controler层&#xff0c;需要通过一些协议完成一些输入的反馈&#xff0c;例如输…...

软件自动定时启动器

点击添加软件&#xff0c;可以添加可执行文件软件&#xff0c;设置启动的时间&#xff0c;也可以设置关闭的时间 注意&#xff0c;时间为00&#xff1a;00&#xff1a;00 等于没设置&#xff0c;这个时间不在设置范围&#xff0c;其他任何时间都可以 1.1更新 1&#xff1a;修复…...

k8s部署rocketmq踩坑笔记

给团队部署一个rocketmq4.8.0. k8s上部署的broker&#xff0c;注册到nameserver上是自己的pod ip&#xff0c;导致本机连接到的broker的pod ip&#xff0c;这个ip k8s集群外的机器是无法联通的。 nameserver上注册的是这个pod ipv4 尝试将broker的配置brokerIP1修改为注册到na…...

从项目代码看 React:State 和 Props 的区别及应用场景实例讲解

在 React 中&#xff0c;state 和 props 是组件的两个重要概念&#xff0c;它们有不同的作用和应用场景。理解它们之间的区别对于开发 React 应用至关重要。 1. state 和 props 的区别 props (属性)&#xff1a; props 是由父组件传递给子组件的数据或函数。props 是只读的&am…...

深度学习中的优化算法

深度学习中的优化算法&#xff0c;是模型训练期间微调神经网络参数的关键元素。其主要作用是最小化模型的误差或损失&#xff0c;从而提高性能。各种优化算法(称为优化器)采用不同的策略来收敛到最佳参数值&#xff0c;从而有效地提高预测效果。 在深度学习的背景下&#xff0c…...

python3GUI--大屏可视化-传染病督导平台 By:PyQt5

文章目录 一&#xff0e;前言二&#xff0e;预览三&#xff0e;软件组成&开发心得1.样式&使用方法2.左侧表格实现3.设计4.学习5.体验效果 四&#xff0e;代码分享1.环形渐变进度组件2.自定义图片的背景组件 五&#xff0e;总结 大小&#xff1a;60.9 M&#xff0c;软件…...

设计模式——单例模式

单例模式 实现单例模式的方法前置条件懒汉式&#xff08;Lazy Initialization&#xff09;饿汉式&#xff08;Eager Initialization&#xff09;双重锁式&#xff08;Double-Checked Locking&#xff09;静态内部类式&#xff08;Static Inner Class&#xff09;枚举式&#xf…...