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

MySQL数据库——主从复制

本文详细介绍 MySQL的主从复制,从原理到配置再到同步过程。

在这里插入图片描述

文章目录

      • 简介
      • 核心组件
      • 主从复制的原理
      • 作用
      • 主从复制的线程模型
      • 主从复制的模式
      • 形式
      • 复制的方式
      • 设计复制机制
      • 主从复制的配置步骤
      • 优化和改进
      • 总结

简介

MySQL 主从复制(Replication)是一种数据分布和同步的技术,通过将主库(Master)的数据和操作复制到一个或多个从库(Slave),实现数据的同步和备份。它常用于读写分离、数据容灾、数据分布等场景。

核心组件

  1. 主库(Master)

    • 负责记录所有数据变更操作到 Binary Log 中。
    • 通过网络将 Binary Log 提供给从库。
  2. 从库(Slave)

    • 负责从主库获取 Binary Log,并通过中继日志(Relay Log)将其重放在本地,最终实现与主库的数据同步。
  3. 二进制日志(Binary Log)

    • 主库记录所有数据变更的日志文件。
    • 包含数据变更的具体操作(语句或行数据)。
  4. 中继日志(Relay Log)

    • 从库将主库发送的 Binary Log 存储为中继日志。
    • 从库 SQL 线程根据中继日志执行对应的操作。

主从复制的原理

  1. 基于二进制日志(Binary Log)

    • MySQL 主从复制依赖主库的二进制日志(Binary Log)。主库将所有数据变更操作(如 INSERTUPDATEDELETE)记录到 Binary Log 中。
  2. 复制过程

    • 日志同步:从库向主库请求二进制日志,从主库读取日志文件中最近的更新操作。
    • 日志重放:从库接收到二进制日志后,存储到自己的中继日志(Relay Log),并重放这些操作以保持与主库数据一致。
  3. 主从独立运行

    • 主库和从库的操作相互独立,从库的备份操作不会干扰主库,主库可以继续处理写操作。

作用

  1. 数据冗余,宕机保护

    • 数据冗余:在从库上保存主库的数据副本,防止数据丢失。
    • 宕机保护:主库宕机时,可以快速启用从库,保障业务连续性。
  2. 读写分离,性能提升

    • 支持读写分离:主库处理写操作,从库处理读操作。
    • 流量分担:多台从库分担主库的查询压力,提升系统性能。
  3. 扩展性

    • 易于扩展:通过增加从库节点应对流量增长。
    • 平滑升级:可以优先升级从库,验证新版本的稳定性后再升级主库。
  4. 负载均衡

    • 多从库分担读流量,实现负载均衡,提升并发能力。

主从复制的线程模型

主从复制主要涉及以下线程:

  1. 主库线程

    • Binlog Dump 线程:主库为每个从库分配一个 Binlog Dump 线程,将 Binary Log 发送到从库。
  2. 从库线程

    • I/O 线程:从库从主库拉取 Binary Log 并保存为 Relay Log。
    • SQL 线程:从库读取 Relay Log,并将日志中的操作在从库中重放。

主从复制的模式

  1. 异步复制(Asynchronous Replication)

    • 主库提交事务后立即返回客户端,从库异步同步数据。延迟低,但存在数据丢失风险。
    • 默认复制模式。
    • 主库不等待从库的确认即完成事务提交。
    • 延迟低,但如果主库崩溃,可能会导致从库数据不一致。
  2. 半同步复制(Semi-Synchronous Replication)

    • 主库在事务提交后会等待至少一个从库确认接收 Binary Log。,才返回客户端。
    • 特点:
      • 提高数据安全性。
      • 延迟较低,但仍比异步复制稍高。
      • 从 MySQL 5.5 开始支持(需要插件)。
  3. 全同步复制(Synchronous Replication)

    • 主库必须等待从库同步完成后,才向客户端返回写入成功。延迟较高,但数据一致性强。
    • 所有从库都确认接收到 Binary Log 后,主库才提交事务。
    • 数据一致性最高,但性能损耗较大。

形式

  1. 一主一从

    • 简单高效的主从架构,适用于小型系统或简单业务场景。
    • 特点
      • 支持基本的高可用性。
      • 从库可用于查询、备份等,主库专注写操作。
  2. 一主多从

    • 主库将数据同步到多个从库,适合读多写少的场景。
    • 特点
      • 提升并发能力,实现负载均衡。
      • 每个从库可以分配特定任务,如查询或备份。
  3. 多主一从

    • 多个主库的数据同步到一台从库。
    • 特点
      • 用于整合不同业务线的数据到一个中心数据库。
      • 对从库的存储性能要求较高。
    • 补充:由于主库间没有自动同步,需确保主库之间的写操作不会冲突。
  4. 双主复制

    • 两台服务器互为主从,支持双机热备。
    • 特点
      • 任一主库宕机后,另一主库可继续提供服务。
      • 双向同步,数据一致性需谨慎处理,防止循环复制或冲突。
    • 适用场景
      • 高可用场景,如业务不允许服务中断。
  5. 级联复制

    • 一些从库直接从主库同步数据,其他从库通过这些从库同步。
    • 特点
      • 缓解主库压力。
      • 降低主库对网络带宽的依赖。
    • 适用场景
      • 大规模分布式系统。

一主一从和一主多从是我们现在见的最多的主从架构,使用起来简单有效,不仅可以实现高可用,而且还能读写分离,进而提升集群的并发能力。


复制的方式

  1. 基于语句的逻辑复制(Statement-Based Replication, SBR)

    • 特点
      • 二进制日志记录 SQL 语句,操作逻辑在从库重放。
      • 日志体积小,传输效率高。
    • 缺点
      • 语句重放依赖于上下文环境,可能导致主从数据不一致(如 NOW()UUID() 生成的值不同)。基于语句更新依赖于其它因素,比如插入数据时利用了时间戳。因此在开发当中,我们应该尽量将业务逻辑逻辑放在代码层(创建时间,不应该是mysql的创建时间),而不应该放在 MySQL 中,不易拓展。
      • 多表操作或复杂查询时,性能可能不理想。
    • 适用场景
      • 操作简单且可预测的业务场景。
      • 设表里有一百万条数据,一条sql更新了所有表,基于语句的复制仅需要发送一条sql,而基于行的复制需要发送一百万条更新记录
  2. 基于行的物理复制(Row-Based Replication, RBR)

    • 特点
      • 二进制日志记录每一行的数据变更,直接同步数据。
      • 精确可靠,不受上下文影响。
    • 缺点
      • 日志体积大,占用更多存储和带宽。
    • 适用场景
      • 数据更新频繁,且对数据一致性要求较高的场景。
      • 例如一条更新用户总积分的语句,需要统计用户的所有积分再写入用户表。如果是基于语句复制的话,从库需要再一次统计用户的积分,而基于行复制就直接更新记录,无需再统计用户积分。
  3. 混合复制(Mixed Replication, MIXED)

    • 特点
      • 默认使用语句复制,当遇到复杂场景(如函数、触发器)时切换为行复制。
      • 动态选择复制方式,兼具两种方式的优点。
    • 缺点
      • 复杂度较高,需要额外的资源判断何时切换。
    • 适用场景
      • 通用场景,特别是既有简单语句,又有复杂操作的业务。

设计复制机制

在这里插入图片描述

以下是主从复制的详细执行流程:

  1. 主库写入 Binary Log

    • 任何修改数据的操作(如 INSERTUPDATEDELETE)都会记录到主库的 Binary Log。
  2. 从库 I/O 线程拉取 Binary Log

    • 从库的 I/O 线程向主库请求 Binary Log。
    • 主库会生成一个 log dump 线程,将 Binary Log 发送给从库。
  3. 从库存储中继日志

    • 从库将主库的 Binary Log 存储为中继日志(Relay Log)。
  4. 从库 SQL 线程执行 Relay Log

    • 从库的 SQL 线程读取 Relay Log,将日志中的操作在从库重放,完成数据同步。
  5. 后续新数据到达主库

    • 主库执行写操作后,事务提交时会将修改记录写入 Binary Log。主库的 Log Dump 线程实时检测 Binary Log 更新,并通过长连接主动推送到从库。

注意:

  • 同步过程是实时推送日志

  • 第一次连接:从库的 I/O 线程主动向主库发起请求,同步历史数据。

  • 后续新数据到达主库:主库主动推送新数据实时同步到从库。

  • 长连接保持:从库的 I/O 线程与主库的 Log Dump 线程建立长连接。从库无需反复发起请求去检查主库是否有新数据,而是等待主库通过长连接推送新的日志。

    • 长连接保持的关键在于:
      1. TCP 持久连接:从库的 I/O 线程与主库的 Log Dump 线程通过 TCP 连接持续通信。
      2. 复制心跳机制:即使主库没有新数据生成,也会定期发送心跳包,保持连接活动。
      3. 自动重连机制:当连接意外中断时,从库的 I/O 线程会自动尝试重新连接主库。
    • MySQL 设计了完整的断点续传和自动重连机制,确保长连接断开后可以尽快恢复。
      • 从库记录了上次成功同步的日志位置(MASTER_LOG_FILEMASTER_LOG_POS)。
      • 重新连接后,从库会从上次中断的位置继续同步,避免重复同步或数据丢失。

主从复制的配置步骤

  1. 配置主库(Master)

    • 启用 Binary Log:
      [mysqld]
      log-bin=mysql-bin
      server-id=1
      
    • 重启 MySQL 服务。
  2. 配置从库(Slave)

    • 设置从库的 server-id
      [mysqld]
      server-id=2
      
    • 连接主库:
      CHANGE MASTER TO
      MASTER_HOST='主库IP',
      MASTER_USER='复制用户',
      MASTER_PASSWORD='密码',
      MASTER_LOG_FILE='mysql-bin.000001',
      MASTER_LOG_POS=120;
      
    • 启动从库复制:
      START SLAVE;
      
  3. 验证主从复制状态

    • 在从库执行:
      SHOW SLAVE STATUS\G;
      

优化和改进

  1. 使用半同步复制

    • 提高数据一致性,降低数据丢失风险。
  2. 多线程复制

    • MySQL 5.6 开始支持多线程复制(Parallel Replication),从库的 SQL 线程可以并行处理不同表的数据,提升同步效率。
  3. 监控和告警

    • 定期检查主从同步状态(SHOW SLAVE STATUS)。
    • 设置告警系统监控复制延迟、复制状态。
  4. 主从自动切换

    • 使用高可用工具(如 MHA、Keepalived、Orchestrator)实现主从自动切换,避免主库故障时人工干预。

总结

MySQL 主从复制是实现高可用性和负载均衡的重要机制。通过合理的复制模式配置(如半同步、并行复制)以及结合监控和自动化工具,可以显著提高数据库系统的性能和可靠性。同时,了解主从复制的缺点(如数据延迟和单点故障)并采取适当的优化措施,可以进一步提升系统的稳定性。

相关文章:

MySQL数据库——主从复制

本文详细介绍 MySQL的主从复制,从原理到配置再到同步过程。 文章目录 简介核心组件主从复制的原理作用主从复制的线程模型主从复制的模式形式复制的方式设计复制机制主从复制的配置步骤优化和改进总结 简介 MySQL 主从复制(Replication)是一…...

详细说明嵌入式linux中bootcmd与bootargs差异

bootcmd 和 bootargs 是在嵌入式系统开发,特别是基于U-Boot(一个广泛应用的开源引导加载程序)环境中常见的两个重要参数,它们的区别如下: 功能用途 bootcmd: 定义:bootcmd 是U-Boot中的一个环…...

【UE5】UnrealEngine源码构建2:windows构建unreal engine 5.3.2

参考大神知乎的文章:UE5 小白也能看懂的源码编译指南 据说会耗费400G的空间。 代码本身并不大,可能是依赖特别多,毕竟看起来UE啥都能干,核心还是c++的, 【UE5】UnrealEngine源码构建1:tag为5.3.2源码clone 本着好奇+ 学习的态度,想着也许有机会能更为深入的熟悉UE的机制…...

【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测

目录 论文信息 论文创新点 1.自适应轻量通道分割和洗牌(ALSS)模块 2.轻量坐标注意力(LCA)模块 3.单通道聚焦模块 4.FineSIOU损失函数 摘要 架构设计 轻量高效网络架构 - ALSS模块 LCA模块 单通道聚焦模块 损失函数优…...

时间序列预测算法---LSTM

文章目录 一、前言1.1、深度学习时间序列一般是几维数据?每个维度的名字是什么?通常代表什么含义?1.2、为什么机器学习/深度学习算法无法处理时间序列数据?1.3、RNN(循环神经网络)处理时间序列数据的思路?1.4、RNN存在哪些问题?…...

【QT】:QT图形化界面概述

Qt背景介绍 1.1 什么是Qt Qt 是⼀个跨平台的C图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形 界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt为开发者提供了⼀种基于组件的开发模 式,开发者可以通过简单的拖拽和组合来实现…...

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示,称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失, 通过使用负采样使…...

Redis相关

Redis相关 什么是redis?redis可以干什么? Redis是一个c语言编写的nosql数据库(不仅仅是sql,泛指非关系型数据库,一般把非关系型数据库称为nosql数据库),数据在内存中以键值对的形式存储,读写速度快,提供数据持久化方式. 常常被广泛应用到做缓存 Redis使用场景 1.缓存 2…...

【优选算法】Binary-Blade:二分查找的算法刃(上)

文章目录 1.概念解析2.二分查找的简单模版3.二分查找的进阶模版4.x的平方根5.搜索插入位置希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 本篇是优选算法之二分查找算法,该算法是一种高效的在有序数组中查找特定元素的搜索算法 1.概…...

Docker--Docker Network(网络)

Docker Network(网络)是Docker容器之间和容器与外部网络之间的通信和连接的一种机制。以下是对Docker Network的详细解释: 一、Docker网络的重要性 Docker容器网络是为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作…...

转化率是衡量网页设计的一个重要指标,请问如何做?

AARRR是互联网产品运营中一个非常重要的模型,这些模型的每一个步骤都涉及到转化率问题,那么AARRR是是什么呢?转化漏斗是什么吗?转化率为什么重要?设计师在做网页设计的时候,如何提升转化率呢?本…...

运维工具之syncthing工具的安装和使用

一、syncthing工具简介 Syncthing是一款开源的文件同步工具,采用Go语言编写。它支持在多个操作系统上运行,包括Windows、macOS和Linux,以及BSD、Solaris和Android等。以下是对这款软件的详细介绍,主要功能: 实时文件同…...

国产数据库-崖山使用介绍

本文档基于崖山数据库23.3 个人版本,单机(主备)部署模式的情况下的使用介绍。 数据库实例状态: NOMOUNT:仅读取参数文件,不加载数据库 MOUNT:读取控制文件,加载数据库&#xff…...

primevue的<Menu>组件

1.使用场景 2.代码 1.给你的menu组件起个引用名 2.<Menu>组件需要一个MenuItem[] 3.你要知道MenuItem[ ]的特殊的数据格式&#xff0c;就像TreeNode[ ]一样&#xff0c;数据格式不对是不渲染的。。。。 常用的属性就这几种&#xff0c;js语言和java不一样&#xff0c;J…...

【玩转23种Java设计模式】行为型模式篇:备忘录模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…...

便捷饭店点餐小程序的设计与实现ssm+论文源码调试讲解

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…...

微信小程序Uniapp

使用命令行创建项目&#xff08;vuets&#xff09; npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本&#xff0c;生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开...

Android GameActivity(NativeActivity)读写文件

最近研究native android相关内容&#xff0c;其中最棘手的就是文件读写问题&#xff0c;最主要的是相关的文档很少。这里写下我所知道的方法。 由于本人使用的是Android14[arm64-v8a]版本的设备,能访问的路径相当有限&#xff0c;如果想要访问更多的路径&#xff0c;就不得不申…...

《计算机网络A》单选题-复习题库解析-2

目录 51、下列关于以太网网卡地址特点的说法中&#xff0c;不正确的是&#xff08; &#xff09;。 52、当一个Web Browser向一个使用标准服务器端口的Web Server提出请求时&#xff0c;那么在服务返回的响应包中&#xff0c;所使用的源端口是&#xff08; &#xff0…...

GPU 进阶笔记(二):华为昇腾 910B GPU

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 1 术语 1.1 与 NVIDIA 术语对应关系1.2 缩写2 产品与机器 2.1 GPU 产品2.2 训练机器 底座 CPU功耗操作系统2.3 性能3 实探&#xff1a;鲲鹏底座 8*910B GPU 主机 3.1 CPU3.2 网卡和网络3.3 GPU 信息 3.3…...

如何利用 ClickHouse 实现高级分析:MySQL 到 ClickHouse 实时数据同步指南

在数据驱动的时代&#xff0c;企业必须依靠先进的数据分析能力来提升竞争力。随着数据量的激增和业务需求的复杂化&#xff0c;传统的关系型数据库已经无法满足高效处理和实时分析的需求。ClickHouse 作为一款高性能的列式数据库&#xff0c;凭借其卓越的查询性能和可扩展性&am…...

Python读取TIF文件

在Python中&#xff0c;逐帧读取TIFF文件&#xff08;尤其是多页TIFF文件&#xff09;可以使用tifffile库或Pillow库。以下是两种方法的示例&#xff1a; 方法 1&#xff1a;使用 tifffile 逐帧读取 tifffile 是一个专门用于处理TIFF文件的库&#xff0c;支持多页TIFF文件的逐…...

vue3+ts+element-plus 表单el-form取消回车默认提交

问题描述&#xff1a;在表单el-form中的el-input中按回车后&#xff0c;页面会刷新&#xff0c;url也会改变&#xff0c; 回车前&#xff1a; 回车后&#xff1a; 相关代码&#xff1a; 解决方法1&#xff1a;在 el-form 上阻止默认的 submit 事件&#xff0c;增加 submit.pre…...

面试经典150题——滑动窗口

文章目录 1、长度最小的子数组1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、无重复字符的最长子串2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、串联所有单词的子串3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 4、最小覆盖子串4.1 题目链接4.2 题目描…...

目标检测之DINO详解

相关链接 论文:[2203.03605] DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detectionhttps://arxiv.org/abs/2203.03605 代码:...

Linux指令

1. 将一个文件夹中的前5000张图片移动到另一个文件夹 可以使用 find 和 mv 命令来实现将一个文件夹 folder1 中的前 5000 张 jpg 图片移动到另一个文件夹 folder2。下面是具体的步骤&#xff1a; 首先&#xff0c;确保 folder2 存在。如果不存在&#xff0c;可以使用 mkdir 命…...

groovy:多线程 简单示例

在Groovy中&#xff0c;多线程编程与Java非常相似&#xff0c;因为Groovy运行在Java虚拟机&#xff08;JVM&#xff09;上&#xff0c;并且可以利用Java的所有并发工具。以下是一些在Groovy中实现多线程编程的方法&#xff1a; class MyThread extends Thread {Overridevoid…...

硬件产品:做产品,不仅仅是产品思维

目录 前言 1. 产品思维阶段 2. 流量思维阶段 3. 用户思维阶段 作者简介 前言 从思维层面来看&#xff0c; 做产品会经历三个阶段&#xff0c;分别是&#xff1a; 1. 产品思维阶段&#xff1b; 2. 流量思维阶段&#xff1b; 3. 用户思维阶段。 如果不理解这三个思维…...

【小程序开发】解决 HBuilder X 提示“本项目类型无法运行到小程序模拟器”

今天在hbuilder引入一个项目时&#xff0c;准备将该项目在微信开发者工具上运行时&#xff0c;发现提示“本项目类型”&#xff0c;如何解决这个问题&#xff1f; 问题如下&#xff1a; 第一&#xff1a;检查一下文件夹是否为一级文件夹&#xff08;如图&#xff09; 不要有多个…...

RuoYi-Vue从http升级为https(Jar+Nginx)

一、前提条件 1.已通过数字证书管理服务控制台签发证书。 2.SSL证书绑定的域名已完成DNS解析,即域名与主机IP地址相互映射。 附:阿里云网站运维检测平台 3.已在Web服务器开放443端口(HTTPS通信的标准端口)。 如果使用的是阿里云ECS服务器,请确保已经在安全组规则入方向…...

探索 Yocto-Meta-OpenEuler:嵌入式开发的强大基石

title: 探索 Yocto-Meta-OpenEuler&#xff1a;嵌入式开发的强大基石 date: ‘2024-11-19’ category: blog tags: Yocto-Meta-OpenEuler嵌入式系统开源项目定制化开发 sig: EmbeddedTech archives: ‘2024-12’ author:way_back summary: Yocto-Meta-OpenEuler 为嵌入式系统开…...

leetcode 3219. 切蛋糕的最小总开销 II

题目&#xff1a;3219. 切蛋糕的最小总开销 II - 力扣&#xff08;LeetCode&#xff09; 排序贪心。 开销越大的越早切。 注意m或n为1的情况。 class Solution { public:long long minimumCost(int m, int n, vector<int>& horizontalCut, vector<int>&…...

UniApp 打开文件工具,获取文件类型,判断文件类型

注意&#xff1a;以下代码使用 typeScript 开发&#xff0c;如果想在 js 中使用&#xff0c;可参考 npm 已经发布的包&#xff1a;https://www.npmjs.com/package/uni-easy-file NPM 使用 如果想直接在 npm 项目中使用可以直接执行以下命令 npm i uni-easy-file然后直接使用 …...

webpack打包node后端项目

webpack打包后端项目 后端项目写好了&#xff0c;感觉也可以打包一下&#xff0c;然后就想到了用webpack试试 先要下载webpack和webpack-cli npm install webpack webpack-cli然后创建webpack配置文件webpack.config.js 核心配置为entry、output、target 但是因为咱们是后…...

《学习之道》

《学习之道》主要讲述了以下内容&#xff1a; 学习的原理 大脑的两种认知模式&#xff1a;介绍了专注模式和发散模式。专注模式适合集中精力解决具体问题、进行深度理解和记忆推理&#xff0c;但长时间使用易疲惫和陷入思维定式&#xff1b;发散模式则让大脑在更广泛的认知网…...

随笔 | 写在2024的最后一天

. 前言 转眼又到了一年的末端。过去这一年&#xff0c;和前些年有些不同&#xff0c;变化巨大&#xff0c;感触良多。多到一时竟不知从何开始写。今天这篇随笔&#xff0c;因为时间有限&#xff0c;可能文法也会有些凌乱&#xff0c;就是想到哪里写到哪里&#xff0c;如果未来…...

对三层架构的梳理(Controller、Service、Dao)

项目结构如下&#xff1a; src├── main│ └── java│ └── com│ └── example│ └── demo│ ├── controller│ │ └── UserController.java│ ├…...

常用的公共 NTP(网络时间协议)服务器

公共 NTP 服务列表 以下是一些常用的公共 NTP&#xff08;网络时间协议&#xff09;服务器&#xff0c;供您参考&#xff1a; 中国地区公共 NTP 服务器 国家授时中心 NTP 服务器&#xff1a;ntp.ntsc.ac.cn中国 NTP 快速授时服务&#xff1a;cn.ntp.org.cn阿里云公共 NTP 服务…...

SimForge HSF 案例分享|复杂仿真应用定制——UAVSim无人机仿真APP(技术篇)

导读 「神工坊」核心技术——「SimForge HSF高性能数值模拟引擎」支持工程计算应用的快速开发、自动并行&#xff0c;以及多域耦合、AI求解加速&#xff0c;目前已实现航发整机数值模拟等多个系统级高保真数值模拟应用落地&#xff0c;支持10亿阶、100w核心量级的高效求解。其低…...

ROS2+OpenCV综合应用--10. AprilTag标签码追踪

1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上&#xff0c;增加了小车摄像头云台运动的功能&#xff0c;摄像头会保持标签码在视觉中间而运动&#xff0c;根据这一特性&#xff0c;从而实现标签码追踪功能。 2. 启动 2.1 程序启动前的准备 本次apriltag标签码使…...

Qanything 2.0源码解析系列6 PDF解析逻辑

Qanything 2.0源码解析系列6: PDF解析逻辑 type: Post status: Published date: 2024/12/04 summary: 深入剖析Qanything是如何拆解PDF的,核心是pdf转markdown category: 技术分享 原文:www.feifeixu.top 😀 前言: 在前面的文章中探究了图片是怎么进行解析的,这篇文章对…...

IDEA修改编译版本

目录 一、序言 二、修改maven配置 1.修改 2.代码 三、pom文件配置 1.修改 2.代码 3.问题 一、序言 有两种方法可以帮助大家解决IDEA每次刷新maven的pom配置时&#xff0c;会发生发行源版本不正常的报错。个人推荐第二种&#xff0c;原因&#xff1a;第二种你刷新maven后…...

Python 向量检索库Faiss使用

Faiss&#xff08;Facebook AI Similarity Search&#xff09;是一个由 Facebook AI Research 开发的库&#xff0c;它专门用于高效地搜索和聚类大量向量。Faiss 能够在几毫秒内搜索数亿个向量&#xff0c;这使得它非常适合于实现近似最近邻&#xff08;ANN&#xff09;搜索&am…...

LunarVim安装

LunarVim以其丰富的功能和灵活的定制性&#xff0c;迅速在Nvim用户中流行开来。它不仅提供了一套完善的默认配置&#xff0c;还允许用户根据自己的需求进行深度定制。无论是自动补全、内置终端、文件浏览器&#xff0c;还是模糊查找、LSP支持、代码检测、格式化和调试&#xff…...

机器学习随机森林回归时间序列预模型中时间滑动窗口作用以及参数设置

一、时间序列模型中时间滑动窗口作用 在时间序列模型中&#xff0c;时间滑动窗口&#xff08;Sliding Window&#xff09;起到了至关重要的作用。它是一种常见且有效的数据表示技术&#xff0c;通过将时间序列数据分割成多个固定大小的窗口&#xff0c;来捕捉和分析数据中的模式…...

【ArcGIS技巧】如何制作轨迹动画

轨迹是日常生活与工作经常要用到的&#xff0c;如跑步轨迹、自驾路线&#xff0c;考察轨迹等。地图根据路线生成轨迹也很好玩&#xff0c;今天小编就带大家用arcmap来实现这一功能&#xff0c;让你的制图动起来。 1、数据准备 在开始制作轨迹动画之前&#xff0c;准备一张影像…...

使用 Docker 搭建 Hadoop 集群

1.1. 启用 WSL 与虚拟机平台 1.1.1. 启用功能 启用 WSL并使用 Moba 连接-CSDN博客 1.2 安装 Docker Desktop 最新版本链接&#xff1a;Docker Desktop: The #1 Containerization Tool for Developers | Docker 指定版本链接&#xff1a;Docker Desktop release notes | Do…...

Bash 中的 2>1 | tee 命令详解

Bash 中的 2>&1 | tee 命令详解 在 Linux 和 Unix 系统中&#xff0c;命令行提供了强大的输出控制功能&#xff0c;能够灵活地处理标准输入&#xff08;stdin&#xff09;、标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;。本文将详…...

hpcrunner

title: 探索 Hpcrunner&#xff1a;高性能计算的得力助手 date: ‘2024-12-31’ category: blog tags: Hpcrunner高性能计算任务调度资源优化 sig: HPC archives: ‘2024-12’ author:way_back summary: Hpcrunner 作为高性能计算领域的一款实用工具&#xff0c;专注于优化任务…...

关于 PPPOE技术的详细解释

PPPoE&#xff08;以太网点对点协议&#xff09;是一种网络协议&#xff0c;它通过光纤将点对点协议&#xff08;PPP&#xff09;封装以实现宽带接入点。PPPoE主要用于ADSL和光纤等宽带接入技术中&#xff0c;它允许多个用户共享同一个交换机连接&#xff0c;同时为每个用户提供…...