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

MySQL 半同步复制,给数据找靠谱 “分身”

目录

一·背景

二、MySQL 复制基础概念

为何需要 MySQL 复制

传统异步复制

半同步复制的诞生

三、MySQL 半同步复制原理详解

主要组件及作用

工作流程

半同步复制流程图

四、MySQL 半同步复制配置与代码示例

环境准备

主服务器配置

从服务器配置

示例说明

五、MySQL 半同步复制的优缺点

优点

缺点

六、实际应用案例

电商平台的订单处理

金融交易系统的数据备份

七、小结


 

一·背景

在当今数据驱动的世界里,数据库的可靠性和数据一致性至关重要。对于使用 MySQL 数据库的企业和开发者而言,确保数据在不同服务器之间准确、及时地复制是一项关键任务。MySQL 半同步复制作为一种重要的复制机制,在保障数据一致性方面发挥着重要作用。

二、MySQL 复制基础概念

为何需要 MySQL 复制

想象一下,你经营着一家热门的在线商城,每天都有海量的用户访问和交易。如果只有一台数据库服务器,一旦这台服务器出现故障,整个商城将陷入瘫痪,这对业务的影响是灾难性的。MySQL 复制就像是给你的数据库服务器找了几个 “替身”,数据在主服务器上更新后,会自动同步到这些 “替身”(从服务器)上。这样一来,不仅可以提高系统的容错能力,当主服务器负载过高时,还能让从服务器分担查询任务,提升整体性能。

传统异步复制

在了解半同步复制之前,先看看传统的 MySQL 异步复制。就好比你有一个消息传递团队,主服务器是队长,从服务器是队员。队长(主服务器)有了新消息(数据更新)后,会告诉队员(从服务器)去更新。但队长不会等队员确认是否收到并更新成功,就继续去做其他事情了。这种方式速度快,因为没有等待确认的时间开销。但是,如果在消息传递过程中,某个队员没收到消息或者更新出错,队长也不知道,这就可能导致数据不一致的问题。

半同步复制的诞生

为了解决异步复制可能出现的数据不一致问题,MySQL 半同步复制应运而生。它就像是改良后的消息传递机制,队长(主服务器)在发送消息(数据更新)给队员(从服务器)后,会等待至少一个队员确认收到并更新成功,才会继续后续操作。这样大大提高了数据复制的可靠性,确保数据在主从服务器之间的一致性。

三、MySQL 半同步复制原理详解

主要组件及作用

主服务器(Master)

主服务器就像乐队的指挥,所有数据的变更都从这里开始。它记录所有的数据修改操作到二进制日志(Binary Log)中。当有新的数据更新时,比如用户在商城里下了一个新订单,主服务器会把这个订单数据的插入操作记录到二进制日志里。

从服务器(Slave)

从服务器是主服务器的忠实追随者。它有两个关键线程,一个是 I/O 线程,负责从主服务器读取二进制日志的内容,并将其写入到自己的中继日志(Relay Log)中。另一个是 SQL 线程,它读取中继日志中的内容,并在从服务器上执行相应的数据库操作,从而实现数据的同步。就好像从服务器有一个快递员(I/O 线程)从主服务器那里取来 “任务包裹”(二进制日志内容),然后有一个工人(SQL 线程)按照包裹里的任务说明(中继日志内容)在从服务器上完成相应操作。

半同步复制插件

这个插件是实现半同步复制的关键。在主服务器上,它负责等待从服务器的确认消息。在从服务器上,它负责在数据更新成功后向主服务器发送确认消息。可以把它想象成主从服务器之间沟通的 “信使”,确保双方信息传递的准确性和及时性。

工作流程

 

数据更新在主服务器

当主服务器上发生数据更新操作时,比如执行了一条UPDATE products SET price = price * 1.1 WHERE category = 'electronics';的 SQL 语句,这条语句会被记录到主服务器的二进制日志中。

从服务器 I/O 线程工作

从服务器的 I/O 线程察觉到主服务器的二进制日志有更新,就像快递员看到有新包裹要取。它通过与主服务器建立的连接,读取主服务器二进制日志中的内容,并将其写入到从服务器的中继日志中。

从服务器 SQL 线程工作

从服务器的 SQL 线程就像一个勤劳的工人,它开始读取中继日志中的内容。它会解析刚才写入的UPDATE语句,并在从服务器上执行相同的操作,对products表中categoryelectronics的产品价格进行更新。

确认消息传递

当从服务器的 SQL 线程成功执行完数据更新操作后,从服务器上的半同步复制插件会向主服务器发送一个确认消息。主服务器收到这个确认消息后,才会继续处理后续的数据更新操作。如果在一定时间内(这个时间可以通过配置参数设定)没有收到确认消息,主服务器可能会采取一些措施,比如切换复制模式或者报错。

半同步复制流程图

四、MySQL 半同步复制配置与代码示例

环境准备

假设我们有两台服务器,一台作为主服务器(IP:192.168.1.100),另一台作为从服务器(IP:192.168.1.101)。两台服务器都安装了 MySQL 数据库,版本为 8.0。

主服务器配置

开启二进制日志:打开主服务器的 MySQL 配置文件(通常是my.cnfmy.ini),找到或添加以下配置项:

[mysqld]
log-bin=mysql-bin
server-id=1

这里log-bin指定了二进制日志的文件名前缀,server-id是服务器的唯一标识,在复制环境中每个服务器的server-id必须不同。

安装半同步复制插件:登录到主服务器的 MySQL 命令行,执行以下命令安装插件:

INSTALL PLUGIN rpl_semi_sync_master SONAME'semisync_master.so';

启用半同步复制:执行以下命令启用主服务器的半同步复制功能,并设置等待从服务器确认的超时时间(这里设置为 10 秒):

SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_master_timeout = 10000;

重启 MySQL 服务:使配置生效。

从服务器配置

设置服务器 ID:打开从服务器的 MySQL 配置文件,添加或修改以下配置项:

[mysqld]
server-id=2

 安装半同步复制插件:登录从服务器的 MySQL 命令行,执行以下命令安装插件:

INSTALL PLUGIN rpl_semi_sync_slave SONAME'semisync_slave.so';

启用半同步复制:执行以下命令启用从服务器的半同步复制功能:

SET GLOBAL rpl_semi_sync_slave_enabled = 1;

配置主服务器信息:告诉从服务器主服务器的地址、用户名、密码等信息,执行以下命令:

CHANGE MASTER TOMASTER_HOST='192.168.1.100',MASTER_USER='replication_user',MASTER_PASSWORD='password',MASTER_LOG_FILE='master_log_file_name',MASTER_LOG_POS=master_log_position;

这里MASTER_HOST是主服务器的 IP 地址,MASTER_USERMASTER_PASSWORD是用于复制的用户名和密码,MASTER_LOG_FILEMASTER_LOG_POS可以通过在主服务器上执行SHOW MASTER STATUS;命令获取。
启动从服务器复制线程:执行以下命令启动从服务器的复制线程:

START SLAVE;

检查从服务器状态:执行SHOW SLAVE STATUS \G;命令,查看从服务器的状态。重点关注Slave_IO_RunningSlave_SQL_Running是否都为Yes,以及Seconds_Behind_Master的值是否为 0 或接近 0。如果Seconds_Behind_Master值较大,说明从服务器与主服务器之间有延迟。

示例说明

配置过程中的 SQL 代码,就是在实际操作中用于配置 MySQL 半同步复制的指令。通过这些指令,我们可以将主从服务器配置成半同步复制模式,确保数据在主从服务器之间可靠地同步。

五、MySQL 半同步复制的优缺点

优点

数据一致性高:相比于异步复制,半同步复制通过等待从服务器的确认消息,大大提高了数据在主从服务器之间的一致性。就像老师批改作业,学生做完作业后要向老师确认已完成,老师才会继续布置新作业,这样能确保每个学生都跟上进度,数据不会出现偏差。

提升系统可靠性:当主服务器出现故障时,由于从服务器的数据与主服务器基本一致,我们可以快速将从服务器提升为主服务器,继续提供服务,减少系统停机时间。例如在电商系统中,即使主数据库服务器突然崩溃,备用的从服务器可以迅速顶上,保证用户的购物流程不受影响。

性能影响较小:虽然半同步复制需要等待从服务器的确认,但由于只需要等待至少一个从服务器的确认,相比于等待所有从服务器确认的同步复制,它的性能开销相对较小。在大多数情况下,不会对主服务器的性能产生明显的负面影响。

缺点

增加了一定的延迟:因为主服务器需要等待从服务器的确认消息,所以在数据更新操作时,会比异步复制增加一些延迟。不过这个延迟通常在可接受范围内,尤其是在网络状况良好的情况下。

配置和维护相对复杂:相比于异步复制,半同步复制需要安装插件、配置更多的参数,并且在运行过程中需要密切关注主从服务器之间的同步状态。这对数据库管理员的技术要求较高,增加了配置和维护的难度。

六、实际应用案例

电商平台的订单处理

某知名电商平台每天处理数百万笔订单。在订单处理过程中,订单数据首先在主数据库服务器上进行插入和更新操作。为了确保订单数据的安全和一致性,该平台采用了 MySQL 半同步复制。主服务器将订单数据的变更记录到二进制日志后,等待至少一个从服务器确认同步成功。这样,即使主服务器出现硬件故障,从服务器上也有最新的订单数据,可以迅速切换为主服务器,继续处理订单,保证了电商平台的稳定运行,避免了因数据丢失或不一致导致的交易纠纷。

金融交易系统的数据备份

一家金融机构的交易系统对数据的准确性和一致性要求极高。在这个系统中,MySQL 半同步复制用于将交易数据从主数据库服务器同步到多个从服务器。这些从服务器一方面作为数据备份,防止主服务器数据丢失;另一方面可以用于生成报表、进行数据分析等操作,而不会影响主服务器的性能。由于半同步复制确保了数据的一致性,金融机构可以放心地基于从服务器的数据进行各种业务分析,为决策提供可靠依据。

七、小结

MySQL 半同步复制作为一种强大的数据复制机制,在保障数据一致性和系统可靠性方面发挥着重要作用。通过本文的介绍,我们了解了它的原理、工作流程、配置方法、优缺点以及实际应用案例。虽然它存在一定的延迟和配置维护复杂的问题,但在数据一致性要求较高的场景下,其优势远远超过了这些不足。随着技术的不断发展,MySQL 半同步复制也在不断优化和完善,将继续为广大企业和开发者提供可靠的数据复制解决方案。

 

相关文章:

MySQL 半同步复制,给数据找靠谱 “分身”

目录 一背景 二、MySQL 复制基础概念 为何需要 MySQL 复制 传统异步复制 半同步复制的诞生 三、MySQL 半同步复制原理详解 主要组件及作用 工作流程 半同步复制流程图 四、MySQL 半同步复制配置与代码示例 环境准备 主服务器配置 从服务器配置 示例说明 五、MyS…...

uniapp离线打包提示未添加videoplayer模块

uniapp中使用到video标签,但是离线打包放到安卓工程中,运行到真机中时提示如下: 解决方案: 1、把media-release.aar、weex_videoplayer-release.aar放到工程的libs目录下; 文档:https://nativesupport.dcloud.net.cn/…...

机器人零位标定修正流程介绍

如果想看运动学标定可以看看 机器人运动学参数标定, 一次性把运动学参数和零位标定等一起标定求解. 1. 零位标定 零位标定是机器人运动学标定中的一个重要步骤,其目的是校正机器人关节的初始位置误差。以下是需要进行零位标定的主要原因: 制造误差 在机…...

应用层通信报文设计

/* --------------------------------------------------------------- | 魔数 2byte | 协议版本号 1byte | 序列化算法 1byte | 报文类型 1byte | --------------------------------------------------------------- | 状态 1byte | 保留字段 4byte | 数据长…...

一周学会Pandas2 Python数据处理与分析-Pandas2读取Excel

锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili Excel格式文件是办公使用和处理最多的文件格式之一,相比CSV文件,Excel是有样式的。Pandas2提…...

技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案

iTOP-3588开发板采用瑞芯微RK3588处理器,是全新一代AloT高端应用芯片,采用8nmLP制程,搭载八核64位CPU,四核Cortex-A76和四核Cortex-A55架构,主频高达2.4GHz。是一款可用于互联网设备和其它数字多媒体的高性能产品。 在…...

ubuntu 20.04 安装源码编译 ros humble过程

公司要兼容ros1还需要ros2 这个时候不得不使用ubuntu20.04 安装 humble 但实际上在20.04上安装humble是需要在源码编译的。 根据这个帖子 https://blog.csdn.net/m0_62353836/article/details/129730981 重写一份,以应对无法下载的问题 系统配置 #检查是否为UTF-8编码,是则跳…...

Ubuntu18.04.06安装window虚拟机,安装VirtualBox

VirtualBox官网没有支持Ubuntu18的版本,最低是ubuntu20; 但是现在用的系统是UBuntu18.04.06,又不能升级,查阅了很多办法,最终终于安装VirtualBox可用版本; 1,在Ubuntu18自带的软件应用市场,搜VirtualBox;…...

Matlab 四分之一车体被动悬架、pid、模糊控制和模糊pid控制

1、内容简介 Matlab 198-四分之一车体被动悬架、pid、模糊控制和模糊pid控制 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...

Linux-----驱动

一、内核驱动与启动流程 1. Linux内核驱动 Nor Flash: 可线性访问,有专门的数据及地址总线(与内存访问方式相同)。 Nand Flash: 不可线性访问,访问需要控制逻辑(软件)。 2. Linux启动流程 ARM架构: IRAM…...

用HTML和CSS绘制佩奇:我不是佩奇

在这篇博客中,我将解析一个完全使用HTML和CSS绘制的佩奇(Pig)形象。这个项目展示了CSS的强大能力,仅用样式就能创造出复杂的图形,而不需要任何图片或JavaScript。 项目概述 这个名为"我不是佩奇"的项目是一个纯CSS绘制的卡通猪形象…...

Qwen2.5-7B-Instruct FastApi 部署调用教程

1 环境准备 基础环境最低要求说明: 环境名称版本信息1Ubuntu22.04.4 LTSCudaV12.1.105Python3.12.4NVIDIA CorporationRTX 3090 首先 pip 换源加速下载并安装依赖包 # 升级pip python -m pip install --upgrade pip # 更换 pypi 源加速库的安装 pip config set g…...

潇洒浪: Dify 上传自定义文件去除内容校验 File validation failed for file: re.json

Dify上传文件 添加其他文件类型如 my.myselfsuffix 上传成功 执行报错 File validation failed for file: re.json 解决办法 Notepad 搜索dify源码 注释掉,重启容器 或者直接在容器中修改重启...

【力扣hot100题】(088)最长有效括号

这题目真是越做越难了。 但其实只是思路很难想到,一旦会了方法就很好做。 但问题就在方法太难想了…… 思路还是只要遍历一遍数组,维护动态规划数组记录截止至目前位置选取该元素的情况下有效括号的最大值。 光是知道这个还不够,看了答案…...

XML、JSON 和 Protocol Buffers (protobuf) 对比

目录 1. XML (eXtensible Markup Language) 1)xml的特点: 2)xml的适用场景: 2. JSON (JavaScript Object Notation) 1)JSOM的特点: 2)JSON的适用场景: 3. Protocol Buffers (…...

C++ 入门四:类与对象 —— 面向对象编程的核心基石

一、类的定义 1. 类的基本形式 class 类名 { public: // 公有成员(类内外均可访问)数据类型 数据成员; // 公有数据成员数据类型 成员函数(参数列表); // 公有成员函数声明 protected: // 保护成员(类内和派生类可访问&…...

DeepSeek:穿透行业知识壁垒的搜索引擎攻防战

DeepSeek:穿透行业知识壁垒的搜索引擎攻防战 文 / 产业智能观察组(人机协同创作) 一、搜索引擎的"认知折叠"危机 2024年Q1数据显示,百度搜索结果前10页中,61.7%的内容存在"伪专业化"现象——看似…...

SQL 查询中涉及的表及其作用说明

SQL 查询中涉及的表及其作用说明: 涉及的数据库表 表名别名/用途关联关系dbo.s_orderSO(主表)存储订单主信息(订单号、日期、客户等)dbo.s_orderdetailSoD(订单明细)通过 billid SO.billid 关…...

数组 array

1、数组定义 是一种用于存储多个相同类型数据的存储模型。 2、数组格式 (1)数据类型[ ] 变量名(比较常见这种格式) 例如: int [ ] arr0,定义了一个int类型的数组,数组名是arr0; &am…...

Git 查看提交历史

Git作为最流行的版本控制工具,其提交历史管理是开发者日常工作的核心部分。无论是回溯代码变更、定位问题根源,还是进行版本回退,掌握Git提交历史的操作技巧都至关重要。本文将全面解析Git提交历史相关命令,助你成为版本管理高手&…...

电脑提示“找不到mfc140u.dll“的完整解决方案:从原因分析到彻底修复

当你启动某个软件或游戏时,突然遭遇"无法启动程序,因为计算机中丢失mfc140u.dll"的错误提示,这确实令人沮丧。mfc140u.dll是Microsoft Foundation Classes(MFC)库的重要组成部分,属于Visual C Re…...

windows安卓子系统wsa隐藏应用列表的安装激活使用

Windows 11 安卓子系统应用部署全攻略 windows安卓子系统wsa隐藏应用列表的安装激活使用|过检测核心前端 在 Windows 11 系统中,安卓子系统为用户带来了在电脑上运行安卓应用的便利。经过一系列的操作,我们已经完成了 Windows 11 安卓子系统的底层和前端…...

深入探索 PyTorch:回归与分类模型的全方位解析

深入探索 PyTorch:回归与分类模型的全方位解析 在当今数据驱动的时代,机器学习与深度学习技术正广泛应用于各个领域,助力我们从海量数据中挖掘有价值的信息。而 PyTorch 作为一款备受青睐的深度学习框架,为开发者们提供了简洁且高…...

案例分析:东华新径,拉动式生产的智造之路

目录 文章目录 目录南京东华智能转向系统有限公司是一家什么公司?背景知识:新能源汽车生产制造流程简介东华遇见了什么问题?东华希望如何解决?解决思路:从 “推动式生产” 到 “拉动式生产”,从 “冗余式思…...

【android bluetooth 框架分析 01】【关键线程 5】【bt_main_thread介绍】

1. 概述 system/stack/btu/btu_task.cc bt_main_thread 是 Android Bluetooth 协议栈中的核心线程,负责处理蓝牙协议栈中的大部分关键任务和事件。它相当于蓝牙协议栈的"大脑",协调各种蓝牙功能的运行。 2. 重要性 bt_main_thread 的重要性…...

城市应急安防系统EasyCVR视频融合平台:如何实现多源视频资源高效汇聚与应急指挥协同

一、方案背景 1)项目背景 在当今数字化时代,随着信息技术的飞速发展,视频监控和应急指挥系统在公共安全、城市应急等领域的重要性日益凸显。尤其是在关键场所,高效的视频资源整合与传输能力对于应对突发公共事件、实现快速精准的…...

自动化测试常用函数

自动化测试常用函数 前言1. 元素的定位1.1 cssSelector1.2 xpath1.2.1 获取 HTML 页面所有的节点1.2.2 获取 HTML 页面指定的节点1.2.3 获取一个节点中的直接子节点1.2.4 获取一个节点的父节点1.2.5 实现节点属性的匹配1.2.6 使用指定索引的方式获取对应的节点内容 2. 操作测试…...

OpengGL教程(七)---摄像机

本章参考官方教程:摄像机 本系列历史文 OpengGL教程(一)—OpenGL环境的配置(GLFW3,GLAD) OpengGL教程(二)—渲染一个简单的窗体 OpengGL教程(三)—使用VAO和VBO方式绘制三角形 OpengGL教程(四)—使用EBO方式绘制矩形 OpengGL教程(五)—纹理的应用 OpengGL教程(六)—…...

springboot禁用静态资源

使用 application.properties 在 application.properties 中添加如下配置: spring.web.resources.add-mappingsfalse使用 application.yml 在 application.yml 中添加如下配置: spring:web:resources:add-mappings: false配置解释 spring.web.resou…...

猫咪如厕检测与分类识别系统系列【二】多图上传及猫咪分类特征提取更新

前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的…...

‌ViewModel和AndroidViewModel的主要区别

‌ViewModel和AndroidViewModel的主要区别在于它们的继承关系、构造函数以及使用场景。‌ ‌继承关系与构造函数‌: ‌ViewModel‌:ViewModel是一个抽象类,位于androidx.lifecycle包中。它是所有ViewModel类的基类,构造函数较为…...

myeclise导入项目并运行

1、把项目复制到myeclise工作目录 2、导入项目:将项目导入到myeclise工作目录 3、配置jre 4、把项目放到tomcat 5、运行项目 配置数据库后运行...

XSS 防御转义规则笔记

一、转义规则概述 核心目标:防止用户输入被浏览器解析为可执行代码,确保输入始终被视为数据而非代码。 关键策略:根据数据嵌入的上下文环境(HTML、JavaScript、CSS 等),对特殊字符进行转义或编码。 二、不…...

【2025年认证杯数学中国数学建模网络挑战赛】C题 完整论文 全三问模型+求解+代码

目录 【2025年认证杯数学建模挑战赛】C题数据预处理与全三问求解一、问题重述二、模型假设与符号说明2.1 模型基本假设2.2 符号说明 三、数据预处理及分析四、问题一五、问题二5.1 基于互相关函数的反应延时识别5.2 反应过程延时结果分析5.3 基于BP神经网络的不合格产物预测5.4…...

iOS应用开发指南

开发一款iOS应用是一个系统化的过程,涵盖从环境搭建、界面设计、编码实现到测试发布的各个环节。以下是一份面向初学者的iOS移动应用开发指南,帮助你从零开始构建自己的App。 一、准备工作:开发环境与工具 必备设备 Mac电脑:iO…...

小刚说C语言刷题——第21讲 一维数组

在日常生活中,我们经常输入一组数据。例如输入一个班30名学生的语文成绩,或者输入一组商品的价格。这个时候,我们如何输入一组类型相同的数据呢?这里我们就要用到数组。 1.数组的概念 所谓数组就是一组相同类型数据的集合。数组中…...

苍穹外卖2

根据id查询员工 调用顺序:Controller—>Service—>ServiceImpl—>Mapper—>xml 1.controller层一个tab秒了(ai生成) 由于result泛型中希望返回一个employee对象,所以定义一个employee来接受Service的getbyid方法,在…...

C语言之双层for循环

一、第一小题引入 循环次数用 外层循环内层循环 这一题即是: 3412(次) 外循环一次 内循环一趟(可以形象理解为 时针和 分针) 运行结果如下: 一、第二小题引入 请阅读下列代码: 执行程序.程序执行的循环次数为多少? 答案:20次 这一题 外层循环 从5开始到i结束 中间的i是…...

第8课:多智能体系统评估与迭代

多智能体系统评估与迭代:从指标设计到持续优化的全流程指南 一、引言:当智能体协作出现“磨合期”:评估与迭代为何是必经之路? 在多智能体系统(MAS)的实际运行中,即使架构设计合理,也可能面临“协作效率下降”“资源浪费”等问题: 任务完成率突然从95%降至70%,却找…...

HTTP:三.HTTP报文

报文流 http报文是以一种类似的流的方式来发送数据的,所以报文流讲述了http报文的一些客观状态,相关术语:流入、流出形容事务处理。http报文任何时候是从上游向下游流入的!其中进过的节点既可能是上游,有可能是下游,如果从某个节点流出,那么相对于此节点流入的那个节点…...

.NET MAUI教程1-入门并发布apk包安装到真机

由于本人水平有限,如有写得不对的地方往指出,由于是使用公司的电脑,电脑的操作系统是英文的,没有权限修改,所以本文截图中的vs是英文版的 以发布android为例进行讲解 测试环境: window 11 vs2022 步骤如…...

你所拨打的电话是空号?手机状态查询API

一、引言 在当今数字化营销时代,电话销售仍然是许多企业获取客户的重要手段之一。然而,电销过程中常常遇到空号、风险号和沉默号等问题,这不仅降低了营销效率,还增加了企业的运营成本。例如,频繁拨打空号浪费了大量时…...

C++顺序栈的实现

顺序栈详细介绍 定义与特点 顺序栈(Sequential Stack)是一种基于数组实现的栈结构,利用数组的连续内存空间存储元素,遵循后进先出(LIFO)原则。其核心特点包括: 固定或动态容量:初始…...

element-ui 中的 select 组件如何 remote-method 函数中传参

在 select 组件中我们使用其 change 事件可以传参&#xff0c;请查看&#xff1a;el-select 中change 事件传参问题。 在我们使用 select 组件的远程搜索时&#xff0c;我们如何给 remote-method 这个方法添加自定义参数呢&#xff1f; 代码实现如下&#xff1a; <el-sel…...

浅谈解释型语言的运用

不得不说&#xff0c;程序不需要编译&#xff0c;程序在运行时才翻译成机器语言&#xff0c;每执行一次&#xff0c;都要翻译一次&#xff0c;因此效率比较低。在运行程序时才翻译&#xff0c;专门有一个解释器去进行翻译&#xff0c;每个语句都是执行的时候才翻译&#xff0c;…...

云手机哪个平台最好用?云手机性能、服务、技术等多维度测评分析

在云手机市场日渐繁荣的当下&#xff0c;面对琳琅满目的云手机平台&#xff0c;用户往往难以抉择云手机哪个平台最好。下面我们就从从性能、价格等多维度分析&#xff0c;云手机平台哪家强&#xff0c;队国内好用的云手机平台进行排行盘点。 好用的云手机平台排行盘点 第一&…...

idea版的cursor:Windsurf Wave 7

在企业环境中&#xff0c;Visual Studio Code和JetBrains系列是最常用的开发工具&#xff0c;覆盖了全球绝大多数开发者。这两类IDE各有优势&#xff0c;但JetBrains系列凭借其针对特定语言和企业场景的深度优化&#xff0c;使得用户很难轻易更换工具。 虽然Windsurf编辑器是基…...

【IDEA】创建 SpringBoot 项目连接 MySQL

前言 IntelliJ IDEA 作为一款专业的 Java 开发工具&#xff0c;在创建和管理 Spring Boot 项目方面具有显著优势。它深度集成了 Spring Boot 的开发流程&#xff0c;从项目初始化到最终部署都提供了高效的支持。IDEA 内置的 Spring Initializr 工具让项目创建变得极其简单&…...

使用 IntelliJ IDEA 进行远程调试

1. 前言 今天线上出现了个 Bug &#xff0c;而且比较坑的是涉及到k8s环境相关的东西不能线下调试。传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试&#xff0c;再根据 log 中的信息进行分析。如果你的 log 埋点不合理&#xff0c;就要不停的修改代码、不停的打包…...

Linux操作系统--进程状态

目录 1.运行、阻塞、挂起 1.1运行 1.2阻塞 1.3挂起(了解一下即可&#xff0c;基本不会出现这种情况) 2.进程状态 2.1进程状态查看 2.2 Z-僵尸进程 2.3孤儿进程 1.运行、阻塞、挂起 1.1运行 运行状态&#xff1a; 进程正在占用CPU执行指令。此时进程对系统资源&#xff…...