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

MySQL与分布式架构的碰撞

目录

一、分布式架构的核心挑战与MySQL的应对策略

1.1 高并发与扩展性

1.3 高可用与容灾

二、MySQL分布式架构的核心技术实现

2.1 读写分离与主从复制(扩展)

2.2 数据分片与分布式存储(扩展)

2.3 MySQL Cluster与NDB引擎(扩展)

三、企业级实践:工商银行的分布式转型(扩展)

3.1 技术栈深度解析

3.2 性能指标与成本对比

四、未来趋势与挑战(扩展)

4.1 云原生与Serverless数据库

4.2 HTAP混合负载支持

4.3 智能化运维


一、分布式架构的核心挑战与MySQL的应对策略

1.1 高并发与扩展性

挑战:传统单机数据库受限于硬件资源(如CPU、内存、磁盘I/O),难以应对互联网业务的高并发访问。

MySQL应对策略

  1. 读写分离
    • 技术实现:主库(Master)通过二进制日志(Binlog)记录写操作,从库(Slave)通过I/O线程异步或半同步拉取日志并重放。
    • 性能优化
      • 多线程复制(MySQL 5.6+):从库采用并行复制(Parallel Replication),按库或事务粒度并发回放日志。
      • 延迟监控:通过SHOW SLAVE STATUS命令监控Seconds_Behind_Master,结合Prometheus+Grafana实现可视化告警。
    • 案例:美团点评通过读写分离将读请求分发至12个从库,QPS从5万提升至50万。
  2. 数据分片
    • 垂直分片:按业务模块拆分(如订单库、用户库、支付库),降低单库复杂度。
    • 水平分片
      • 分片算法
        • 范围分片:按时间或ID区间划分(如用户ID 1-100万分配至分片1)。
        • 哈希分片:通过一致性哈希(Consistent Hashing)减少数据迁移量。
        • 基因分片:结合业务属性生成分片键(如地域+用户ID),避免热点问题。
      • 中间件选型:对比ShardingSphere、Vitess、MyCAT的适用场景(见表1)。

中间件

优势

局限性

ShardingSphere

支持多数据库、Apache生态完善

复杂查询需手动优化

Vitess

Kubernetes原生、YouTube验证

学习曲线陡峭

MyCAT

社区活跃、文档丰富

性能瓶颈明显(10万QPS以上)

  • 1.2 数据一致性与分布式事务

挑战:CAP定理下,分布式系统需在一致性(Consistency)、可用性(Availability)、分区容忍性(Partition Tolerance)间权衡。

MySQL解决方案

  1. 强一致性方案
    • 2PC(两阶段提交)
      • 阶段一(Prepare):协调者询问所有参与者是否可提交,参与者锁定资源并返回就绪状态。
      • 阶段二(Commit/Rollback):协调者根据参与者反馈决定全局提交或回滚。
      • 缺陷:同步阻塞、单点故障、数据不一致风险(如协调者宕机)。
    • 改进方案
      • 3PC(三阶段提交):引入超时机制与预提交阶段,降低阻塞时间。
      • TCC(Try-Confirm-Cancel):业务层通过“预留资源-确认提交-补偿回滚”实现最终一致性,适用于高吞吐场景。
  2. 最终一致性方案
    • 基于消息队列
      • 本地消息表:业务与消息表在同一个事务中写入,由定时任务扫描并投递消息。
      • RocketMQ事务消息:通过“半消息+事务状态回查”确保消息与业务操作原子性。
    • 案例:阿里巴巴在电商订单系统中,通过RocketMQ+MySQL实现跨服务事务,日均处理20亿笔订单。

1.3 高可用与容灾

挑战:金融级系统要求RPO(恢复点目标)趋近于0,RTO(恢复时间目标)在分钟级以内。

MySQL高可用架构

  1. 同城双活
    • MHA(Master High Availability):通过VIP漂移实现主库故障自动切换,RTO约30秒。
    • Orchestrator:支持拓扑感知与自动故障转移,适用于多数据中心场景。
  2. 异地多活
    • 数据同步
      • 异步复制:跨地域网络延迟较高时使用,存在数据丢失风险。
      • 半同步复制:主库提交事务前需至少一个从库确认,保障RPO=0。
    • 流量调度:通过DNS+全局负载均衡(如F5、Nginx)将用户请求路由至最近机房。
  3. 案例
    • 工商银行“两地三中心”:上海双园区(同城双活)+北京灾备中心,通过MySQL半同步复制与GoldenGate实现数据级容灾。
    • AWS Aurora Global Database:基于MySQL兼容引擎,支持1个主区域+5个只读副本区域,跨区域复制延迟<1秒。

二、MySQL分布式架构的核心技术实现

2.1 读写分离与主从复制(扩展)

  • GTID(全局事务标识)
    • 作用:为每个事务分配唯一ID,避免传统复制中因Binlog位置偏移导致的同步错误。
    • 配置:在my.cnf中设置gtid_mode=ON和enforce_gtid_consistency=ON。
  • 延迟优化
    • 并行复制:设置slave_parallel_workers=8,提升从库回放速度。
    • 增强半同步(After Commit vs. After Sync):MySQL 5.7+支持rpl_semi_sync_master_wait_point=AFTER_SYNC,进一步降低数据丢失风险。

2.2 数据分片与分布式存储(扩展)

  • 基因分片实践
    • 场景:社交平台用户表包含用户ID与好友关系,按用户ID哈希分片可能导致跨分片查询。
    • 方案:将用户ID与好友ID拼接为分片键,确保同一用户及其好友数据位于同一分片。
  • 全局唯一ID生成
    • Snowflake算法:64位ID=时间戳(41位)+机器ID(10位)+序列号(12位),支持每秒409.6万个ID。
    • Leaf-Segment:由数据库预分配号段(如每次获取1万个ID),减少数据库访问压力。

2.3 MySQL Cluster与NDB引擎(扩展)

  • NDB引擎深度解析
    • 内存存储:数据默认存储在内存中,支持通过ndb_extra_logging=1将部分数据持久化至磁盘。
    • 数据分区:按主键哈希自动分片,支持多副本(默认2副本),单集群最大支持48个数据节点。
  • 适用场景对比

场景

InnoDB引擎

NDB引擎

数据量

TB级

百GB级(内存限制)

事务支持

ACID、行级锁

最终一致性、MVCC

延迟

毫秒级

微秒级

三、企业级实践:工商银行的分布式转型(扩展)

3.1 技术栈深度解析

  • 分布式事务框架
    • Seata AT模式:通过UNDO_LOG表实现自动补偿,业务代码无需侵入。
    • 性能优化:将事务日志存储至Redis,降低数据库压力。
  • 数据核对系统
    • 全量核对:每日凌晨通过Spark对比分片间数据checksum。
    • 实时核对:基于Binlog订阅+Elasticsearch,实现异常交易10秒内告警。

3.2 性能指标与成本对比

指标

转型前(大型主机)

转型后(MySQL分布式)

单笔交易成本

0.15元

0.02元

日均交易量

1亿笔

12亿笔

系统可用性

99.95%

99.999%

四、未来趋势与挑战(扩展)

4.1 云原生与Serverless数据库

  • Kubernetes Operator
    • 自动化运维:通过Prometheus监控+自定义CRD(如MySQLCluster),实现自动扩缩容与备份恢复。
    • 案例:阿里云ApsaraDB for MySQL支持1分钟内完成从1个节点到100个节点的弹性扩容。
  • Serverless架构:按实际请求量计费,冷启动时间优化至200ms以内。

4.2 HTAP混合负载支持

  • TiDB架构解析
    • 行存(OLTP):基于Raft协议的多副本存储,支持ACID事务。
    • 列存(OLAP):通过TiFlash节点实现实时分析,与行存数据强一致。
  • 性能对比:TPC-H 100G测试中,TiDB HTAP较传统ETL+OLAP方案提速8倍。

4.3 智能化运维

  • AI索引推荐
    • 工具:MySQL 8.0的Index Advisor结合机器学习模型,推荐缺失索引。
    • 效果:京东云实测索引优化后,慢查询减少70%。
  • 异常检测
    • 算法:基于LSTM的时序预测模型,提前30分钟预测CPU/内存瓶颈。

相关文章:

MySQL与分布式架构的碰撞

目录 一、分布式架构的核心挑战与MySQL的应对策略 1.1 高并发与扩展性 1.3 高可用与容灾 二、MySQL分布式架构的核心技术实现 2.1 读写分离与主从复制&#xff08;扩展&#xff09; 2.2 数据分片与分布式存储&#xff08;扩展&#xff09; 2.3 MySQL Cluster与NDB引擎&am…...

python-MySQL鏈接

python鏈接MySQL&#xff0c;主要利用庫 pip install mysql-connector-pythonimport mysql.connector# 配置连接参数 config {"user": "your_username","password": "your_password","host": "localhost", # 或…...

cv::remap() 和 cv::undistortion() 的区别

在 OpenCV 中&#xff0c;cv::remap 和 cv::undistort 都用于处理图像畸变校正&#xff0c;但它们的实现方式和应用场景有显著区别。以下是详细对比&#xff1a; 1. cv::undistort&#xff1a;直接畸变校正 功能 输入&#xff1a;原始畸变图像 相机内参矩阵 (cameraMatrix) …...

【AI提示词】决策树专家

提示说明 一位熟悉决策树算法的机器学习专家&#xff0c;擅长用树状图量化不同选择的结果概率。 提示词 # Role: 决策树专家## Profile - language: 中文 - description: 一位熟悉决策树算法的机器学习专家&#xff0c;擅长用树状图量化不同选择的结果概率 - background: 决…...

【中间件】bthread_数据结构_学习笔记

bthread数据结构 bthread_数据结构_学习笔记1 pthread_cond_t1.1 definition1.2 解释1.3 设计动机1.4 使用示例1.5 注意事项1.6 进一步延伸&#xff1a;pthread_cond_s 2 pthread_mutex_t bthread_数据结构_学习笔记 1 pthread_cond_t POSIX线程库 /usr/include/x86_64-linux…...

VM虚拟机安装CentOS7.9

目录 1.下载CentOS7.9 2.VM虚拟机选择自定义&#xff0c;然后一直傻瓜式下一步 3.选择编辑虚拟机设置&#xff0c;然后选择刚刚下载的ISO 4.输入 ip addr 获取ip地址 5.用Xshell连接 1.下载CentOS7.9 链接&#xff1a;https://pan.baidu.com/s/1kW2gGWnbcjNtq4kz46LKVw?p…...

C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 18)

&#x1f381;个人主页&#xff1a;工藤新一 &#x1f50d;系列专栏&#xff1a;C面向对象&#xff08;类和对象篇&#xff09; &#x1f31f;心中的天空之城&#xff0c;终会照亮我前方的路 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 二…...

Cribl 数据脱敏 更多方法 MASK (三)

我做过好几个cribl 数据脱敏的实验: Cribl 脱敏mask-CSDN博客...

【笔记】深度学习模型训练的 GPU 内存优化之旅⑤:内存分配篇

开设此专题&#xff0c;目的一是梳理文献&#xff0c;目的二是分享知识。因为笔者读研期间的研究方向是单卡上的显存优化&#xff0c;所以最初思考的专题名称是“显存突围&#xff1a;深度学习模型训练的 GPU 内存优化之旅”&#xff0c;英文缩写是 “MLSys_GPU_Memory_Opt”。…...

【5G 架构】边缘计算平台是如何与3GPP网络连接的?

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…...

5.0.0 GripSpliter的使用(探讨水平竖直对齐参数)

布局控件Grid 配合 GridSplitter 无需编写任何代码 就能实现网格大小可拖动。 其HorizontalAlignment、VerticalAlignment属性的使用非常具有迷惑性;本文做了一些一些实验,总结为把这两个属性均设置为strech即可。 总结如下:经过实验,发现以下情况可以正常工作。 水平方向…...

python如何把pdf转word

在Python中将PDF转换为Word文档&#xff08;.docx&#xff09;比反向转换&#xff08;Word转PDF&#xff09;更具挑战性&#xff0c;因为PDF是固定格式&#xff0c;而Word是可编辑格式。以下是几种可行的方法及详细步骤&#xff1a; 方法1&#xff1a;使用 pdf2docx 库 pdf2do…...

go实现双向链表

需求 实现双向链表的节点生成、正反向遍历、指定删除。 实现 package mainimport ("fmt" )type zodiac_sign struct {number intdizhi stringanimal stringyear intprevious *zodiac_signnext *zodiac_sign }// 添加 // func add_node_by_order(pr…...

33、VS中提示“以下文件中的行尾不一致。是否将行尾标准化?“是什么意思?

在Visual Studio&#xff08;VS&#xff09;中遇到提示“以下文件中的行尾不一致。是否将行尾标准化&#xff1f;”时&#xff0c;意味着当前打开或正在编辑的文件内部存在行尾符&#xff08;EOL&#xff0c;End-Of-Line&#xff09;格式不统一的情况。以下是详细解释和应对建议…...

C 语言 第五章 指针(5)

目录 函数参数传递机制&#xff1a;地址传递 值传递 简单变量指针作为形参 举例1&#xff1a; 举例2&#xff1a; 举例3&#xff1a; 数组作为形参 举例&#xff1a; 函数参数传递机制&#xff1a;地址传递 值传递 void test(int a, int b) { a 10; b 20; print…...

Python项目源码69:Excel数据筛选器1.0(tkinter+sqlite3+pandas)

功能说明&#xff1a;以下是一个使用Tkinter和Pandas实现的完整示例&#xff0c;支持Excel数据读取、双表格展示和高级条件筛选功能&#xff1a; 1.文件操作&#xff1a;点击"打开文件"按钮选择Excel文件&#xff08;支持.xlsx和.xls格式&#xff09;&#xff0c;自…...

机器人--架构及设备

机器人的四大组成部分 控制系统 驱控系统 驱控驱动系统控制系统。 注意&#xff0c;这里的控制系统不是机器人层面的控制系统&#xff0c;属于更小层级的&#xff0c;驱控系统的控制系统。 驱动系统&#xff1a; 一般指硬件设备&#xff0c;比如电机驱动器&#xff0c;I/O…...

机器人--主机--控制系统

机器人主机 机器人主机&#xff0c;即控制系统。 作用 机器人主机的核心功能 传感器数据处理&#xff1a;处理摄像头、激光雷达、IMU等数据。 运行SLAM/导航算法&#xff1a;如Google Cartographer、RTAB-Map。 路径规划与控制&#xff1a;执行A*、DWA等算法。 通信管理&a…...

Stm32 烧录 Micropython

目录 前言 准备工作 开始操作 问题回顾 后记 前言 去年曾经尝试Pico制作openmv固件&#xff0c;由于知识储备不够最后失败了&#xff0c;留了一个大坑&#xff0c;有了前几天的基础&#xff0c;慢慢补齐知识&#xff0c;最近这一周一直在学习如何编译Stm固件并烧录到单片机…...

leetcode 977. Squares of a Sorted Array

题目描述 双指针法一 用right表示原数组中负数和非负数的分界线。 nums[0,right-1]的是负数&#xff0c;nums[right,nums.size()-1]是非负数。 然后用合并两个有序数组的方法。合并即可。 class Solution { public:vector<int> sortedSquares(vector<int>&…...

使用Nexus搭建远程maven仓库

1、Nexus介绍 Nexus 是 Sonatype 公司的一款用于搭建私服的产品&#xff0c;使用非常广泛。在早期&#xff0c;我们都拿Nexus当maven私服仓库&#xff0c;后来&#xff0c;随着版本不断更新&#xff0c;它支持的数据类型越来越多&#xff0c;比如npm仓库&#xff0c;nuget仓库&…...

坚鹏:工行《DEEPSEEK赋能银行智能办公及数字化营销服务》培训

中国工商银行上海市分行《DEEPSEEK赋能银行智能办公及数字化营销服务》培训圆满落幕 中国工商银行作为全球领先的综合性金融服务集团&#xff0c;始终走在金融科技创新的前沿。截至2024年末&#xff0c;工商银行总资产规模突破40万亿元&#xff0c;连续多年稳居全球银行榜首。在…...

操作系统OS是如何指挥外围设备的呢?

众所周知&#xff0c;OS的职责之一就是管理外围设备&#xff0c;比如常见的磁盘、硬盘、显示器、麦克风等&#xff0c;但并不是外围设备的一切都必须由OS管理&#xff0c;比如无线鼠标上的开关键&#xff0c;当你通过它关闭鼠标时&#xff0c;这个操作并不会经过OS&#xff0c;…...

实现Sentinel与Nacos的规则双向同步

实现Sentinel与Nacos的规则双向同步&#xff1a;完整解决方案 前言 在微服务架构中&#xff0c;流量控制和熔断降级是保障系统稳定性的重要手段。阿里开源的Sentinel作为一款轻量级的流量控制组件&#xff0c;常被用于实现这些功能。然而&#xff0c;在实际生产环境中&#x…...

2025五一杯数学建模A题:支路车流量推测问题,思路分析+模型代码

一持续更新&#xff0c;见文末名片 二、问题背景 想象一下&#xff0c;城市的道路如同一张巨大的脉络图&#xff0c;主路如同大动脉&#xff0c;配备着车流量监测设备&#xff0c;能实时记录车流量数据&#xff0c;就像我们身体的传感器一样。然而&#xff0c;当多条支路像毛细…...

Linux51 安装baidunetdisk yum install rpm -ivh

推测网卡 感觉是不是以前哪里设置了下 deepseek说的这个设置 我没有设置过 这个不会弄啊 准备用虚拟机安个软件 神奇 换了这个命令又能打开网卡了 参考了这个 参考 之前地址我觉得配置错误 动态分配 我就删掉ip地址了 路由表中无ip地址吗&#xff1f; OK 卸载 运…...

【Python-Day 8】从入门到精通:Python 条件判断 if-elif-else 语句全解析

Langchain系列文章目录 01-玩转LangChain&#xff1a;从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块&#xff1a;四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain&#xff1a;从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...

若依 FastAPI + Vue3 项目 Docker 部署笔记( 启动器打包教程)

本文记录了将 start.bat 打包成 .exe 启动器的详细教程&#xff0c;适合项目交付或导师演示用。 &#x1f9ed; 一、如何将 start.bat 打包为启动器 .exe&#xff08;含图标 自动打开浏览器&#xff09; ✅ 1. 创建三大功能脚本 start.bat → 启动项目&#xff08;docke…...

Lebesgue测度和积分理论发展概观

1. 发展背景 积分可以从两个角度来理解。首先&#xff0c;积分是微分的逆函数&#xff0c;因此积分是反导数(译注&#xff1a;但积分是独立于微分的&#xff0c;不能微分的函数也可能可积)。然而&#xff0c;这是一个非常抽象的概念。其次&#xff0c;两点之间的积分可以看…...

算法题题型总结

二叉树题型 解法综述&#xff1a;二叉树的解法&#xff0c;基本上都是依赖遍历&#xff0c;再加上递归的思路来做的。那递归又分为深度优先和广度优先。深度优先算法&#xff0c;前序&#xff0c;中序&#xff0c;后序。广度优先&#xff0c;利用先进先出队列&#xff0c;一层…...

网络编程——TCP和UDP详细讲解

文章目录 TCP/UDP全面详解什么是TCP和UDP&#xff1f;TCP如何保证可靠性&#xff1f;1. 序列号&#xff08;Sequence Number&#xff09;2. 确认应答&#xff08;ACK&#xff09;3. 超时重传&#xff08;Timeout Retransmission&#xff09;4. 窗口控制&#xff08;Sliding Win…...

Qt多线程TCP服务器实现指南

在Qt中实现多线程TCP服务器可以通过为每个客户端连接分配独立的线程来处理&#xff0c;以提高并发性能。以下是一个分步实现的示例&#xff1a; 1. 自定义工作线程类&#xff08;处理客户端通信&#xff09; // workerthread.h #include <QObject> #include <QTcpSo…...

【经管数据】A股上市公司资产定价效率数据(2000-2023年)

数据简介&#xff1a;资产定价效率是衡量市场是否能够有效、准确地反映资产内在价值的重要指标。在理想的市场条件下&#xff0c;资产的市场价格应该与其内在价值保持一致&#xff0c;即市场定价效率达到最高。然而&#xff0c;在实际市场中&#xff0c;由于信息不对称、交易摩…...

打包 Python 项目为 Windows 可执行文件:高效部署指南

Hypackpy 是一款由白月黑羽开发的 Python 项目打包工具&#xff0c;它与 PyInstaller 等传统工具不同&#xff0c;通过直接打包解释器环境和项目代码&#xff0c;并允许开发者修改配置文件以排除不需要的内容&#xff0c;从而创建方便用户一键运行的可执行程序。以下是使用 Hyp…...

【QNX+Android虚拟化方案】138 - USB 底层传输原理

【QNX+Android虚拟化方案】138 - USB 底层传输原理 1. USB 数据包的格式2. 数据传输事务过程3. 四种传输类型3.1 批量传输3.2 中断传输3.3 实时传输3.4 控制传输4. USB 设备枚举过程4.1 Attached: 发送控制传输,读取设备描述符4.2 Power -> Default 这个状态无数据传输4.3 …...

QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码

&#xff08;9&#xff09;所有代码来自于头文件 qabstractspinbox . h : #ifndef QABSTRACTSPINBOX_H #define QABSTRACTSPINBOX_H#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qwidget.h> #include <QtGui/qvalidator.h>/* QT_CONFIG宏实…...

MCP入门

什么是mcp mcp&#xff08;model context protocol&#xff0c;模型上下文协议&#xff09; 标准化协议&#xff1a;让大模型用统一的方式来调用工具&#xff0c;是llm和工具之间的桥梁 A2A&#xff1a;Agent-to-Agent协议 mcp通信机制 提供mcp服务查询的平台 具有工具合集…...

FPGA中级项目8———UART-RAM-TFT

FPGA中级项目8———UART-RAM-TFT UART串口我们学过&#xff0c;RAM IP核学过&#xff0c;TFT同样也学过。那如何将它们联合起来呢&#xff1f; 言简意赅&#xff1a;实现从串口写入图像到RAM并且由TFT显示屏输出&#xff01; 首先第一步&#xff0c;便是要将UART_RX与RAM之间…...

Ocelot\Consul\.NetCore的微服务应用案例

案例资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90733765 1.效果 实现两个微服务ServerAPI1和ServerAPI2的负载均衡以及高可用。具体原理&#xff0c;看以下示意图。 2.部署条件 1、腾讯云的轻量化服务器 2、WindowServer2016 3、.NETCore7.0 4、Negut …...

数值求解Eikonal方程的方法及开源实现

Eikonal方程是一类非线性偏微分方程&#xff0c;形式为 ( |\nabla u(x)| f(x) )&#xff0c;常见于波传播、几何光学、最短路径等问题。以下是数值求解Eikonal方程的方法及开源实现参考&#xff1a; 一、数值求解方法 有限差分法&#xff08;FDM&#xff09; 快速行进法&#…...

Http详解

&#x1f9f1; 一、从 TCP 三次握手到访问网页&#xff1a;两层过程 &#x1f9e9; 1. TCP 三次握手&#xff08;网络传输层&#xff09; 这是 建立连接 的前提&#xff0c;跟 HTTP 无关&#xff0c;但 HTTP 要依赖它。 举例&#xff1a;你打开浏览器访问 https://example.c…...

实验五 完整性

一、引言 本次上机实验的目的主要是让学生掌握数据库完整性的三大类型&#xff08;实体完整性、参照完整性、用户自定义完整性&#xff09;&#xff0c;并通过实际建库建表和数据操作加深理解。 下面将为分别展示 student、course、sc 三个表的创建语句&#xff0c;并设置对应的…...

《原码、反码与补码:计算机中的数字奥秘》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、原码&#xff1a;最直观的表示法1. 正数的原码2. 负数的原码3. 原码的特点 二、反码&#xff1a;原码的“反转”1. 正数的反码2. 负数的反码3. 反码的特…...

论文笔记——QWen2.5 VL

目录 引言架构创新数据整理与训练策略性能与基准测试精细感知能力应用与现实世界影响与现有模型比较结论 引言 视觉理解和自然语言处理的集成一直是人工智能研究的一个重要焦点&#xff0c;促成了日益复杂的视觉语言模型 (VLMs) 的发展。由阿里巴巴集团 Qwen 团队开发的 Qwe…...

前端HTML基础知识

1.HTML介绍 HTML(HyperText Markup Language&#xff0c;超文本标记语言)是构成网页的基本元素&#xff0c;是一种用于创建网页的标准化标记语言。HTML不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;通过标签来描述网页的结构和内容。 超文本&#xff1a;超文本是…...

程序代码篇---ESP32云开发

文章目录 前言 前言 本文简单介绍了实现 ESP32-S3 传感器数据上传至云平台 手机远程控制电机 的完整方案&#xff0c;涵盖推荐的云平台、手机端。 一、推荐云平台及工具 云平台选择 阿里云 IoT 平台 优势&#xff1a;国内稳定、支持大规模设备接入、提供完整设备管理及安全…...

【C语言】文本操作函数fseek、ftell、rewind

一、fseek int fseek ( FILE * stream, long int offset, int origin ); 重新定位文件指针的位置&#xff0c;使其指向以origin为基准、偏移offset字节的位置。 成功返回0&#xff0c;失败返回非零值&#xff08;通常为-1&#xff09;。 origin有如下三种&#xff1a;分别是…...

ARM ASM

ARM ASM ARM寄存器集 列出了ARM的16个程序员可见寄存器&#xff08;r0~r15&#xff09;以及它的状态寄存器。 ARM共有14个通用寄存器r0~r13。寄存器r13被保留用作栈指针&#xff0c;r14存放子程 序返回地址&#xff0c;r15为程序计数器。 由于r15能够被程序员访问&#xff0c…...

【五一培训】Day1

注&#xff1a; 1. 本次培训内容的记录将以“Topic”的方式来呈现&#xff0c;用于记录个人对知识点的理解。 2. 由于培训期间&#xff0c;作者受限于一些现实条件&#xff0c;本文的排版及图片等相关优化&#xff0c;需要过一段时间才能完成。 Topic 1&#xff1a;使用DeepS…...

SpringBoot使用分组校验解决同一个实体对象在不同场景下需要不同校验规则的问题

背景 添加分类的接口不需要id字段&#xff0c;但更新分类的接口需要id字段&#xff0c;当在id字段上使用NotNull注解时&#xff0c;会导致使用添加分类接口报id字段不能为空的错误 解决 定义分组 pojo/Category.java // 如果没有指定分组&#xff0c;则默认属于Default分组…...