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

MySQL数据库容灾设计案例与SQL实现

MySQL数据库容灾设计案例与SQL实现

一、主从复制容灾方案

1. 配置主从复制

-- 在主库执行(创建复制账号)
CREATE USER 'repl_user'@'%' IDENTIFIED BY 'SecurePass123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%';-- 查看主库状态(记录File和Position)
SHOW MASTER STATUS;
-- 示例输出:
-- File: mysql-bin.000001
-- Position: 107-- 在从库执行配置
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl_user',
MASTER_PASSWORD='SecurePass123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;-- 启动从库复制
START SLAVE;-- 检查从库状态
SHOW SLAVE STATUS\G

2. 自动故障转移检测

-- 创建监控表
CREATE TABLE replication_monitor (id INT AUTO_INCREMENT PRIMARY KEY,check_time DATETIME DEFAULT CURRENT_TIMESTAMP,master_status VARCHAR(20),slave_io_running VARCHAR(3),slave_sql_running VARCHAR(3),seconds_behind INT,last_error TEXT
);-- 创建监控存储过程
DELIMITER //
CREATE PROCEDURE check_replication_status()
BEGINDECLARE io_status VARCHAR(3);DECLARE sql_status VARCHAR(3);DECLARE behind INT;-- 获取从库状态SELECT Slave_IO_Running, Slave_SQL_Running, Seconds_Behind_MasterINTO io_status, sql_status, behindFROM performance_schema.replication_applier_status;-- 记录状态INSERT INTO replication_monitor (master_status, slave_io_running, slave_sql_running, seconds_behind)VALUES ('OK', io_status, sql_status, behind);-- 如果复制中断,发送警报IF io_status != 'Yes' OR sql_status != 'Yes' THENINSERT INTO alert_logs (alert_type, alert_message)VALUES ('REPLICATION_ERROR', CONCAT('Replication error - IO: ', io_status, ', SQL: ', sql_status));END IF;
END //
DELIMITER ;-- 创建定时事件
CREATE EVENT ev_replication_monitor
ON SCHEDULE EVERY 1 MINUTE
DO CALL check_replication_status();

二、MGR(MySQL Group Replication)高可用方案

1. 初始化MGR集群

-- 在所有节点执行基础配置
SET SQL_LOG_BIN=0;
CREATE USER 'mgr_user'@'%' IDENTIFIED BY 'MgrSecurePass456!';
GRANT REPLICATION SLAVE ON *.* TO 'mgr_user'@'%';
GRANT BACKUP_ADMIN ON *.* TO 'mgr_user'@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;-- 配置第一个节点(引导节点)
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION USER='mgr_user', PASSWORD='MgrSecurePass456!';
SET GLOBAL group_replication_bootstrap_group=OFF;-- 其他节点加入集群
START GROUP_REPLICATION USER='mgr_user', PASSWORD='MgrSecurePass456!';-- 查看集群状态
SELECT * FROM performance_schema.replication_group_members;

2. MGR故障自动处理

-- 创建故障处理存储过程
DELIMITER //
CREATE PROCEDURE handle_mgr_failure()
BEGINDECLARE member_count INT;DECLARE primary_member VARCHAR(255);-- 检查集群成员数量SELECT COUNT(*) INTO member_count FROM performance_schema.replication_group_membersWHERE MEMBER_STATE = 'ONLINE';-- 如果少于2个在线成员,触发警报IF member_count < 2 THENINSERT INTO alert_logs (alert_type, alert_message)VALUES ('MGR_WARNING', CONCAT('Only ', member_count, ' members online'));-- 尝试自动恢复IF member_count = 0 THENSET GLOBAL group_replication_bootstrap_group=ON;START GROUP_REPLICATION;SET GLOBAL group_replication_bootstrap_group=OFF;END IF;END IF;-- 检查主节点是否存在SELECT MEMBER_HOST INTO primary_memberFROM performance_schema.replication_group_membersWHERE MEMBER_ROLE = 'PRIMARY' LIMIT 1;IF primary_member IS NULL THEN-- 触发选举新主节点STOP GROUP_REPLICATION;START GROUP_REPLICATION;END IF;
END //
DELIMITER ;-- 创建监控事件
CREATE EVENT ev_mgr_monitor
ON SCHEDULE EVERY 30 SECOND
DO CALL handle_mgr_failure();

三、跨机房容灾方案

1. 配置异地灾备

-- 主中心配置
CREATE USER 'dr_user'@'backup_center_IP' IDENTIFIED BY 'DrPass789!';
GRANT REPLICATION SLAVE ON *.* TO 'dr_user'@'backup_center_IP';-- 灾备中心配置(延迟复制,避免逻辑错误传播)
CHANGE MASTER TO
MASTER_HOST='primary_center_IP',
MASTER_USER='dr_user',
MASTER_PASSWORD='DrPass789!',
MASTER_DELAY=3600;  -- 延迟1小时START SLAVE;-- 配置半同步复制(确保数据安全)
-- 在主库执行
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_master_timeout = 30000;  -- 30秒超时-- 在灾备库执行
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_slave_enabled = 1;

2. 灾备切换流程

-- 1. 停止应用写入
-- 2. 确保所有数据同步完成
STOP SLAVE IO_THREAD;
SHOW PROCESSLIST;  -- 确保所有SQL线程完成-- 3. 提升灾备库为主库
STOP SLAVE;
RESET MASTER;  -- 清除复制信息
SET GLOBAL read_only = OFF;-- 4. 在原主库配置为新从库(故障恢复后)
CHANGE MASTER TO
MASTER_HOST='new_master_IP',
MASTER_USER='dr_user',
MASTER_PASSWORD='DrPass789!';START SLAVE;

四、数据校验与修复

1. 定期数据校验

-- 创建校验表
CREATE TABLE data_checksum (table_name VARCHAR(64) PRIMARY KEY,source_checksum BIGINT,target_checksum BIGINT,last_check_time DATETIME,status ENUM('OK', 'MISMATCH', 'NOT_CHECKED')
);-- 创建校验存储过程
DELIMITER //
CREATE PROCEDURE verify_data_consistency()
BEGINDECLARE done INT DEFAULT FALSE;DECLARE tname VARCHAR(64);DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE() AND table_type = 'BASE TABLE';DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;OPEN cur;read_loop: LOOPFETCH cur INTO tname;IF done THENLEAVE read_loop;END IF;SET @sql = CONCAT('INSERT INTO data_checksum (table_name, source_checksum, last_check_time, status) VALUES (?, (SELECT COUNT(*) FROM ', tname, '), NOW(), ''NOT_CHECKED'') ON DUPLICATE KEY UPDATE source_checksum = VALUES(source_checksum), last_check_time = VALUES(last_check_time)');PREPARE stmt FROM @sql;EXECUTE stmt USING tname;DEALLOCATE PREPARE stmt;END LOOP;CLOSE cur;-- 标记不一致的表UPDATE data_checksum dcJOIN (SELECT table_name, COUNT(*) AS cnt FROM information_schema.tables WHERE table_schema = DATABASE() GROUP BY table_name) tON dc.table_name = t.table_nameSET dc.status = IF(dc.source_checksum = t.cnt, 'OK', 'MISMATCH');
END //
DELIMITER ;-- 创建定时校验任务
CREATE EVENT ev_data_verification
ON SCHEDULE EVERY 6 HOUR
DO CALL verify_data_consistency();

五、自动化容灾演练

-- 创建演练日志表
CREATE TABLE disaster_recovery_drill (drill_id INT AUTO_INCREMENT PRIMARY KEY,start_time DATETIME NOT NULL,end_time DATETIME,scenario VARCHAR(50) NOT NULL,status ENUM('RUNNING', 'SUCCESS', 'FAILED') DEFAULT 'RUNNING',details TEXT
);-- 创建演练存储过程
DELIMITER //
CREATE PROCEDURE execute_drill(IN scenario VARCHAR(50))
BEGINDECLARE drill_start DATETIME DEFAULT NOW();DECLARE drill_id INT;-- 记录演练开始INSERT INTO disaster_recovery_drill (start_time, scenario, status)VALUES (drill_start, scenario, 'RUNNING');SET drill_id = LAST_INSERT_ID();-- 根据场景执行不同操作CASE scenarioWHEN 'MASTER_FAILOVER' THEN-- 模拟主库故障SET @kill_id = (SELECT ID FROM information_schema.processlist WHERE USER = 'app_user' LIMIT 1);SET @sql = CONCAT('KILL ', @kill_id);PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;-- 这里添加实际的故障转移逻辑-- ...UPDATE disaster_recovery_drill SET status = 'SUCCESS', end_time = NOW()WHERE drill_id = drill_id;WHEN 'DATACENTER_FAILURE' THEN-- 模拟数据中心故障-- ...ELSEUPDATE disaster_recovery_drill SET status = 'FAILED', end_time = NOW(),details = 'Unknown scenario'WHERE drill_id = drill_id;END CASE;
END //
DELIMITER ;

六、监控与告警系统

-- 创建监控仪表板视图
CREATE VIEW disaster_recovery_status AS
SELECT (SELECT COUNT(*) FROM replication_monitor WHERE slave_io_running = 'No' OR slave_sql_running = 'No') AS replication_errors,(SELECT COUNT(*) FROM performance_schema.replication_group_members WHERE MEMBER_STATE != 'ONLINE') AS mgr_offline_members,(SELECT COUNT(*) FROM data_checksum WHERE status = 'MISMATCH') AS data_mismatches,(SELECT MAX(TIMESTAMPDIFF(MINUTE, last_check_time, NOW())) FROM data_checksum) AS minutes_since_last_check,(SELECT COUNT(*) FROM alert_logs WHERE alert_time > DATE_SUB(NOW(), INTERVAL 1 HOUR)) AS recent_alerts;

以上SQL语句实现了一个完整的MySQL数据库容灾方案,包括主从复制、MGR高可用、异地灾备、数据校验和自动化演练等功能模块。实际应用时,需要根据具体环境调整IP地址、用户名密码等参数。

相关文章:

MySQL数据库容灾设计案例与SQL实现

MySQL数据库容灾设计案例与SQL实现 一、主从复制容灾方案 1. 配置主从复制 -- 在主库执行&#xff08;创建复制账号&#xff09; CREATE USER repl_user% IDENTIFIED BY SecurePass123!; GRANT REPLICATION SLAVE ON *.* TO repl_user%;-- 查看主库状态&#xff08;记录File…...

各类有关NBA数据统计数据集大合集

这些数据我已上传大家在CSDN上直接搜索就可以&#xff01; 一、【2022-2023 NBA球员统计】数据集 关键词: 篮球 描述: 语境 该数据集每场比赛包含2022-2023常规赛NBA球员统计数据。 请注意&#xff0c;由团队更改产生了重复的球员名称。 * [2021-2022 NBA播放器统计]&#…...

【基于 LangChain 的异步天气查询5】多轮对话天气智能助手

目录 项目概述 1. 天气查询功能 2. 多轮对话与聊天 3. 语音输入与输出 4. 历史记录管理 5. 项目结构 6. 核心功能流程 7. 项目特色 🗂️ 项目目录结构 📄 chat_runnable.py 📄 main.py 📄 history_manager.py 📄 weather_runnable.py 📄 tools.py �…...

图片转ICO图标工具

图片转ICO图标 可批量操作 下载地址&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/6312c565ec98 这个工具是一个批量图片转ICO图标的神器&#xff0c;有了它&#xff0c;以后再也不用为ICO格式的转换烦恼&#xff01;而且这个软件特别小巧&#xff0c;完全不用安装。…...

istio in action之服务网格和istio组件

微服务和服务网格 微服务 微服务将大系统拆解成一个个独立的、小型的服务单元。每个服务可以独立部署、快速迭代&#xff0c;团队可以自主决策&#xff0c;大大降低了变更风险。当然&#xff0c;微服务不是万能药&#xff0c;它需要强大的自动化和DevOps实践作为支撑。而Isti…...

5 从众效应

引言 有一个成语叫做三人成虎&#xff0c;意思是说&#xff0c;有三个人谎报市上有老虎&#xff0c;听者就信以为真。这种人在社会群体中&#xff0c;容易不加分析地接受大多数人认同的观点或行为的心理倾向&#xff0c;被称为从众效应。 从众效应&#xff08;Bandwagon Effec…...

超市销售管理系统 - 需求分析阶段报告

1. 系统概述 超市销售管理系统是为中小型超市设计的信息化管理解决方案&#xff0c;旨在通过信息化手段实现商品管理、销售处理、库存管理、会员管理等核心业务流程的数字化&#xff0c;提高超市运营效率和服务质量&#xff0c;同时为管理者提供决策支持数据。 2. 业务需求分…...

懒人美食帮SpringBoot订餐系统开发实现

概述 快速构建一个订餐系统&#xff0c;今天&#xff0c;我们将通过”懒人美食帮”这个基于SpringBoot的订餐系统项目&#xff0c;为大家详细解析从用户登录到多角色权限管理的完整实现方案。本教程特别适合想要学习企业级应用开发的初学者。 主要内容 1. 用户系统设计与实现…...

【计算机视觉】基于Python的相机标定项目Camera-Calibration深度解析

基于Python的相机标定项目Camera-Calibration深度解析 1. 项目概述技术核心 2. 技术原理与数学模型2.1 相机模型2.2 畸变模型 3. 实战指南&#xff1a;项目运行与标定流程3.1 环境配置3.2 数据准备3.3 执行步骤3.4 结果验证 4. 常见问题与解决方案4.1 角点检测失败4.2 标定结果…...

彩票假设学习笔记

彩票假设 文章目录 彩票假设一、基本概念1. 核心观点2. 关键要素 二、彩票假设的用途三、训练流程四、意义和局限性1. 意义2. 局限性 五、总结 一、基本概念 彩票假设&#xff08;Lottery Ticket Hypothesis&#xff09;是由 Jonathan Frankle 和 Michael Carbin 在 2019 年的…...

《算法导论(第4版)》阅读笔记:p18-p31

《算法导论(第4版)》学习第 11 天&#xff0c;p18-p31 总结&#xff0c;总计 4 页。 一、技术总结 1. Fourier transform(傅里叶变换) In mathematics, the Fourier transform (FT) is an integral transform that takes a function as input then outputs another function…...

编程技能:字符串函数02,strcpy

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;编程技能&#xff1a;字符串函数01&#xff0c;引言 回到目录 …...

UOJ 164【清华集训2015】V Solution

Description 给定序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1​,a2​,⋯,an​)&#xff0c;另有序列 h h h&#xff0c;初始时 h a ha ha. 有 m m m 个操作分五种&#xff1a; add ⁡ ( l , r , v ) \operatorname{add}(l,r,v) add(l,r,v)&#xff1a;…...

数据库备份与策略【全量备份、增量备份、日志恢复】

数据库备份策略与SQL语句实现 一、基础备份SQL语句 1. 全量备份&#xff08;逻辑备份&#xff09; -- 备份单个数据库 mysqldump -u [username] -p[password] --single-transaction --routines --triggers --events --master-data2 [database_name] > backup.sql-- 备份…...

基于单片机的电子法频率计

一、电子计数法测频率原理 通过门控控制闸门开关&#xff0c;闸门时间T自己设定&#xff0c;计数器计数脉冲个数N&#xff08;也就是待测信号&#xff09;&#xff0c;N个脉冲的时间间隔为δt,倒数即为信号的频率f,由此 δtT/N fN/T——信号频率 根据公式&#xff0c;如果考虑…...

day22python打卡

复习日 仔细回顾一下之前21天的内容&#xff0c;没跟上进度的同学补一下进度。 作业&#xff1a; 自行学习参考如何使用kaggle平台&#xff0c;写下使用注意点&#xff0c;并对下述比赛提交代码 kaggle泰坦里克号人员生还预测https://www.kaggle.com/competitions/titanic/…...

前端项目打包部署流程j

1.打包前端项目(运行build这个文件) 2.打包完成后&#xff0c;控制台如下所示:(没有报错即代表成功) 3.左侧出现dist文件夹 4.准备好我们下载的nginx(可以到官网下载一个),然后在一个没有中文路径下的文件夹里面解压。 5.在继承终端内打开我们的项目&#xff0c;找到前面打包好…...

k8s的flannel生产实战与常见问题排查

关于 Kubernetes Flannel 插件的详细教程及生产环境实战指南&#xff0c;涵盖核心概念、安装配置、常见问题排查与优化策略 Flannel通信流程 一、Flannel 概述 Flannel 是 Kubernetes 最常用的 CNI&#xff08;Container Network Interface&#xff09;插件之一&#xff0c;…...

Linux `uname` 指令终极指南

Linux `uname` 指令终极指南 一、核心功能解析1. 命令语法2. 基础输出示例二、选项详解与使用场景三、实战应用技巧1. 系统信息快速获取2. 硬件平台验证3. 内核版本比较四、高级调优方法1. 内核编译优化2. 驱动模块管理3. 安全补丁验证五、系统诊断与排查1. 虚拟化环境检测2. 内…...

wget、curl 命令使用场景与命令实践

一、wget 常见场景与命令 定位&#xff1a;专注于 文件下载&#xff0c;支持递归下载、断点续传&#xff0c;适合批量或自动化下载任务。 1. 基础下载 # 下载文件到当前目录&#xff08;自动命名&#xff09; wget https://example.com/file.zip# 指定保存文件名 wget -O cu…...

RAII是什么?

RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;资源获取即初始化&#xff09;是C编程中的一项非常重要且经典的设计思想&#xff0c;也是现代C资源管理的基石。它主要解决资源的自动管理与释放问题&#xff0c;从而帮助程序员避免资源泄漏、悬空指针等常…...

应急响应基础模拟靶机-security2

PS:杰克创建的流量包(result.pcap)在root目录下&#xff0c;请根据已有信息进行分析 1、首个攻击者扫描端口使用的工具是&#xff1f; 2、后个攻击者使用的漏洞扫描工具是&#xff1f; 3、攻击者上传webshell的绝对路径及User-agent是什么&#xff1f; 4、攻击者反弹shell的…...

【C/C++】const关键词及拓展

✅ C 中的 const 关键字 学习笔记 &#x1f4a1; 关键词&#xff1a;常量、编译时常量、性能优化、安全性、C11/C14/C17/C20 特性 &#x1f9e0; 一、const —— 常量修饰符 1.1 定义 const 是 “constant” 的缩写。表示一个变量一旦被初始化&#xff0c;其值就不能再改变。…...

什么是电路耦合以及如何解耦合

耦合&#xff08;Coupling&#xff09;是指两个或多个电路之间通过物理连接或电磁场交互产生的能量或信号传递现象。其本质是不同电路模块之间相互影响的机制&#xff0c;可能表现为信号传输、噪声干扰或能量传递。 一、解耦合的核心目标 电源噪声抑制&#xff1a;隔离开关电…...

【软件测试】基于项目驱动的功能测试报告(持续更新)

目录 一、项目的介绍 1.1 项目背景 二、测试目标 2.1 用户服务模块 2.1.1 用户注册模块 2.1.1.1 测试点 2.1.1.2 边界值分析法(等价类+边界值) 2.1.1.2.1 有效等价类 2.1.1.2.2 无效等价类 2.1.1.2.3 边界值 2.1.1.2.4 测试用例设计 2.1.2 用户登录 2.1.2.1 测试…...

Java面试常见技术问题解析

Java面试常见技术问题 1. Java基础 1.1 Java的特点是什么&#xff1f; Java是一种面向对象的编程语言&#xff0c;具有跨平台性、健壮性、安全性、多线程支持等特点。 1.2 什么是面向对象&#xff1f; 面向对象是一种编程范式&#xff0c;通过类和对象来组织代码&#xff…...

弹性Reasoning!通过RL训练控制推理预算,提升模型的推理能力和效率!

摘要&#xff1a;大型推理模型&#xff08;LRMs&#xff09;通过生成扩展的思维链&#xff08;CoT&#xff09;在复杂任务上取得了显著进展。然而&#xff0c;它们不受控制的输出长度对于实际部署构成了重大挑战&#xff0c;在实际部署中&#xff0c;对令牌、延迟或计算的推理时…...

Spyglass:在batch/shell模式下运行目标的顶层是什么?

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 除了可以在图形用户界面(GUI)中运行目标外&#xff0c;使用Batch模式或Shell模式也可以运行目标&#xff0c;如下面的命令所示。 % spyglass -project test.prj -ba…...

新手在使用宝塔Linux部署前后端分离项目时可能会出现的问题以及解决方案

常见问题与解决方案 1. 环境配置错误 问题&#xff1a;未正确安装Node.js/Python/JDK等运行时环境解决&#xff1a; 通过宝塔面板的软件商店安装所需环境验证版本&#xff1a; node -v # 查看Node.js版本 python3 --version # 查看Python3版本2. 端口未正确开放 问题&am…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十七)

个人笔记整理---仅供参考 第十七章项目干系人管理 17.1管理基础 17.2项目干系人管理过程 17.3识别干系人 17.4规划干系人参与 17.5管理人干系人参与 17.6监督干系人参与...

AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式

1、Anthropic API 集成网页搜索功能&#xff0c;赋能 Claude 模型实时信息获取与研究能力 Anthropic 公司近日宣布&#xff0c;为其应用程序接口&#xff08;API&#xff09;引入了网页搜索工具&#xff0c;显著增强了旗下 Claude 系列模型获取和利用实时信息的能力。这一更新…...

【和春笋一起学C++】数组名作为函数参数实例

接上篇文章《【和春笋一起学C】函数——C的编程模块》&#xff0c;当使用数组名作为函数形参时&#xff0c;数组名会退化为指针&#xff0c;实际传递的是数组首元素的地址。 数组名在大多数情况下会退化为指针&#xff0c;以下两种情况除外&#xff1a; 当使用sizeof运算符时&a…...

多智体具身人工智能:进展与未来方向(上)

25年5月来自北理工、南大、西安交大、浙大和同济大学的论文“Multi-Agent Embodied AI: Advances And Future Directions”。 具身人工智能&#xff08;Embodied AI&#xff09;在智能时代先进技术的应用中扮演着关键角色。在智能时代&#xff0c;人工智能系统与物理实体相融合…...

C++类和对象--初阶

C类和对象—初阶 01. 面向对象与面向过程深度对比 面向过程&#xff1a;以过程为中心&#xff0c;关心问题解决的步骤。执行效率高&#xff0c;适合简单问题&#xff0c;内存占用小。但是代码复杂性高&#xff0c;维护成本高。 线性流程&#xff1a;点餐 → 烹饪 → 上菜 → …...

sunset:Solstice靶场

sunset:Solstice https://www.vulnhub.com/entry/sunset-solstice,499/ 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.244 3&#xff…...

1247. 后缀表达式

面白i题 ahh 我这朱脑子是写不出来的。大牛分析&#xff1a; 我的ac代码&#xff1a; #include<iostream> using namespace std; int ma-1e91,mi1e91; long long sum; long long sum1; int main(){int n,m; scanf("%d%d",&n,&m);for(int i0;i<(nm…...

基础框架搭建流程指南

一、搭建前准备阶段 1. 明确需求目标 确定业务场景类型&#xff08;Web/APP/微服务等&#xff09; 分析核心功能与非功能性需求&#xff08;性能/安全性/扩展性&#xff09; 预估用户量级与并发压力 2. 技术选型决策 开发语言选择&#xff08;Java/Python/Go等&#xff09…...

Vue.js 全局导航守卫:深度解析与应用

在 Vue.js 开发中&#xff0c;导航守卫是一项极为重要的功能&#xff0c;它为开发者提供了对路由导航过程进行控制的能力。其中&#xff0c;全局导航守卫更是在整个应用的路由切换过程中发挥着关键作用。本文将深入探讨全局导航守卫的分类、作用以及参数等方面内容。 一、全局…...

微服务架构实战:从服务拆分到RestTemplate远程调用

微服务架构实战&#xff1a;从服务拆分到RestTemplate远程调用 一 . 服务拆分1.1 服务拆分注意事项1.2 导入服务拆分 Demo1.3 小结 二 . 服务间调用2.1 注册 RestTemplate2.2 实现远程调用2.3 小结 三 . 提供方和消费方 在分布式系统设计中&#xff0c;微服务架构因其灵活性、可…...

10.二叉搜索树中第k小的元素(medium)

1.题目链接&#xff1a; 230. 二叉搜索树中第 K 小的元素 - 力扣&#xff08;LeetCode&#xff09;230. 二叉搜索树中第 K 小的元素 - 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 小的元素&#xff08;从 1 开始计数…...

八股文-js篇

八股文-js篇 1. 延迟执行js的方式2. js的数据类型3. null 和 undefined的区别4. 和 的区别5. js微任务和宏任务6. js作用域7. js对象9. JS作用域this指向原型8. js判断数组9. slice作用、splice是否会改变原数组10. js数组去重11. 找出数组最大值12. 给字符串新增方法实现功能…...

Nipype使用:从安装配置到sMRI处理

Nipype使用&#xff1a;从安装配置到sMRI处理 Nipype使用&#xff1a;从安装配置到sMRI处理一、Nipype及其依赖工具安装配置1.1 Nipype安装1.2 依赖工具安装与配置1.2.1 FreeSurfer1.2.2 ANTS1.2.3 FSL1.2.4 dcm2nii/MRIConvert 1.3 环境变量配置 二、Nipype进行sMRI预处理2.1 …...

常用的rerank模型有哪些?都有什么优势?

常用的Rerank模型分类及优势分析 重排序(Rerank)模型在信息检索、推荐系统、问答系统等场景中发挥关键作用,通过优化初步检索结果提升最终输出的相关性。以下是当前主流的Rerank模型分类及其核心优势的详细分析: 一、基于大语言模型(LLM)的Rerank模型 代表性模型: Ran…...

LLM框架

LLM&#xff08;Large Language Model&#xff0c;大型语言模型&#xff09;框架是一类用于开发、部署和优化大型语言模型的工具和平台。它们在自然语言处理&#xff08;NLP&#xff09;和人工智能&#xff08;AI&#xff09;领域中发挥着重要作用&#xff0c;帮助开发者高效地…...

SaaS场快订首页的前端搭建【持续更新】

文章目录 一、创建页面二、配置路由三、写接口文件&#xff08;api&#xff09;1.定位的接口函数&#xff08;腾讯地图api&#xff09;实现代码&#xff1a; 2.获取场馆分类的数据3.获取附近场馆列表的数据 四、开发首页页面1.顶部区域2.搜索框3.场馆分类4.附近场馆列表 五、难…...

2025第九届御网杯网络安全大赛线上赛 区域赛WP (MISC和Crypto)(详解-思路-脚本)

芜湖~ 御网杯线上分是越来越精细 区域赛都有了 然后不过多评价 整体不算难 以下是我自己的一些思路和解析 有什么问题或者建议随时都可以联系我 目录 芜湖~ MISC #被折叠的显影图纸 #光隙中的寄生密钥 #ez_xor #套娃 #easy_misc #ez_pictre Crypto #easy签到题 …...

HTTP/1.1 host虚拟主机详解

一、核心需求&#xff1a;为什么需要虚拟主机&#xff1f; 在互联网上&#xff0c;我们常常希望在一台物理服务器&#xff08;它通常只有一个公网 IP 地址&#xff09;上运行多个独立的网站&#xff0c;每个网站都有自己独特的域名&#xff08;例如 www.a-site.com​, www.b-s…...

低代码开发:开启软件开发的新篇章

摘要 低代码开发作为一种新兴的软件开发方式&#xff0c;正在迅速改变传统软件开发的模式和效率。它通过可视化界面和预设的模板&#xff0c;使非专业开发者也能够快速构建应用程序&#xff0c;极大地降低了开发门槛和成本。本文将深入探讨低代码开发的定义、优势、应用场景以及…...

HVV蓝队初级面试总结

一、技术面&#xff1a; 1-SQL注入原理 1-WEB应用程序对用户输入的数据 2-没有过滤或者过滤的不严谨 3-并且把用户输入的数据当作SQL 语司 4-带入到数据中去执行2-SQL注入分类 1-回显型 2-无回显型/盲注1-联合查询注入unionselect 2-堆叠注入&#xff1b; 3-报错注入upda…...

C++八股——函数对象

文章目录 一、仿函数二、Lambda表达式三、bind四、function 一、仿函数 仿函数&#xff1a;重载了操作符()的类&#xff0c;也叫函数对象 特征&#xff1a;可以有状态&#xff0c;通过类的成员变量来存储&#xff1b;&#xff08;有状态的函数对象称之为闭包&#xff09; 样…...