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

云盘系统设计

需求背景

网盘面向大量C端用户 1000w用户 DAU 20% 每天10次

QPS: 1000w * 0.2 * 10 / 100k = 500

峰值估计:500 * 5 = 2500

功能需求

支持上传,下载,多端共同在线编辑,数据冲突处理

非功能需求

1.latency 20s左右

2.可用性与一致性,可以是弱后版本的,先保障可用性

3.扩展性,大量C端用户

4.稳定性 多副本,raft之类的

架构设计

fileMeta:1.file_id 2.owner_id 3.file_type 4. create_time 5.update_time 6. isdelete 7.chunk_ids (一对多),8. access url 9.last_access_time

chunk: chunk_id, chunk_size, file_id, create_time, updatetime, isDelete, md5

冲突更新 first commit wins, 或者保留两份交给用户修改

statement的事件感知,推送客户端 long pull, websocket, sse,生态兼容与时间

版本回退,压缩 log seq

md5是不是重复了,如何重复了可以节省空间

冷热分离,数据归档

md5校验重组和传输过程

1.冷数据归档事件实践

冷数据归档事件实践总结

冷数据归档是优化存储成本、提升数据库性能的关键技术手段,其实践需结合业务场景和技术方案综合设计。以下是基于行业实践的技术要点总结:


一、‌归档必要性
  1. 业务场景驱动

    • 高频增长的业务数据(如票务系统每月新增300G数据)导致传统数据库性能瓶颈,冷数据归档可释放主库压力并提升查询效率1。
    • 合规性要求长期保留历史数据时,归档可避免主库因数据膨胀导致的运维复杂度增加15。
  2. 性能与成本平衡

    • 冷数据迁移至低成本存储介质(如HDD或对象存储)可降低存储成本,最高达原成本的5%1。

二、‌技术实现方案
  1. 分层存储架构

    • 热数据层‌:使用SSD或内存存储高频访问数据,保障实时性3。
    • 冷数据层‌:采用HDD、纠删码(EC)存储或对象存储(如S3),结合数据压缩和去重技术减少空间占用37。
  2. 自动化生命周期管理

    • 基于访问频率或时间戳自动分类数据(如6个月未访问数据标记为冷数据)5。
    • 通过定时任务(如MySQL事件调度器)或分布式数据库内置功能(如PolarDB-X)实现定期归档25。
  3. 数据迁移与查询兼容性

    • 归档表需与原表结构一致,并提供统一查询接口,确保业务无感知访问归档数据5。
    • PolarDB-X支持通过冷数据源配置实现透明化归档查询2。

三、‌典型实践步骤(以MySQL/PolarDB-X为例)
  1. 数据分类与策略制定

     

    sqlCopy Code

    -- 示例:筛选6个月未访问的冷数据 SELECT * FROM orders WHERE last_accessed < NOW() - INTERVAL 6 MONTH;

  2. 归档执行

    • MySQL‌:通过事件调度器定期迁移数据至归档表5。
    • PolarDB-X‌:创建冷数据源并配置归档规则,例如:
       

      bashCopy Code

      # 创建冷数据源 CREATE STORAGE cold_storage TYPE='LOCAL_DISK' ...

  3. 存储介质优化

    • 使用低成本存储池(如Ceph bulk存储池)并启用压缩功能7。

四、‌成本优化策略
  1. 压缩与去重‌:冷数据采用高压缩比算法(如ZSTD)和去重技术降低存储占用37。
  2. 对象存储选择‌:利用云厂商S3兼容存储实现弹性扩容和按需付费8。

五、‌注意事项
  1. 备份与恢复流程‌:归档前需制定备份策略,确保灾难恢复时RTO/RPO可控6。
  2. 数据一致性‌:归档过程中需保证事务完整性,避免数据丢失或损坏8。

六、‌未来趋势
  1. 智能化工具‌:结合机器学习预测数据访问模式,动态调整归档策略4。
  2. 云原生集成‌:通过容器化和微服务架构实现弹性归档能力8。

通过以上实践,企业可有效平衡数据存储成本与系统性能,适应业务长期发展需求

冷数据归档事件实践总结

冷数据归档是优化存储成本、提升数据库性能的关键技术手段,其实践需结合业务场景和技术方案综合设计。以下是基于行业实践的技术要点总结:


一、‌归档必要性
  1. 业务场景驱动

    • 高频增长的业务数据(如票务系统每月新增300G数据)导致传统数据库性能瓶颈,冷数据归档可释放主库压力并提升查询效率1。
    • 合规性要求长期保留历史数据时,归档可避免主库因数据膨胀导致的运维复杂度增加15。
  2. 性能与成本平衡

    • 冷数据迁移至低成本存储介质(如HDD或对象存储)可降低存储成本,最高达原成本的5%1。

二、‌技术实现方案
  1. 分层存储架构

    • 热数据层‌:使用SSD或内存存储高频访问数据,保障实时性3。
    • 冷数据层‌:采用HDD、纠删码(EC)存储或对象存储(如S3),结合数据压缩和去重技术减少空间占用37。
  2. 自动化生命周期管理

    • 基于访问频率或时间戳自动分类数据(如6个月未访问数据标记为冷数据)5。
    • 通过定时任务(如MySQL事件调度器)或分布式数据库内置功能(如PolarDB-X)实现定期归档25。
  3. 数据迁移与查询兼容性

    • 归档表需与原表结构一致,并提供统一查询接口,确保业务无感知访问归档数据5。
    • PolarDB-X支持通过冷数据源配置实现透明化归档查询2。

三、‌典型实践步骤(以MySQL/PolarDB-X为例)
  1. 数据分类与策略制定

     

    sqlCopy Code

    -- 示例:筛选6个月未访问的冷数据 SELECT * FROM orders WHERE last_accessed < NOW() - INTERVAL 6 MONTH;

  2. 归档执行

    • MySQL‌:通过事件调度器定期迁移数据至归档表5。
    • PolarDB-X‌:创建冷数据源并配置归档规则,例如:
       

      bashCopy Code

      # 创建冷数据源 CREATE STORAGE cold_storage TYPE='LOCAL_DISK' ...

  3. 存储介质优化

    • 使用低成本存储池(如Ceph bulk存储池)并启用压缩功能7。

四、‌成本优化策略
  1. 压缩与去重‌:冷数据采用高压缩比算法(如ZSTD)和去重技术降低存储占用37。
  2. 对象存储选择‌:利用云厂商S3兼容存储实现弹性扩容和按需付费8。

五、‌注意事项
  1. 备份与恢复流程‌:归档前需制定备份策略,确保灾难恢复时RTO/RPO可控6。
  2. 数据一致性‌:归档过程中需保证事务完整性,避免数据丢失或损坏8。

六、‌未来趋势
  1. 智能化工具‌:结合机器学习预测数据访问模式,动态调整归档策略4。
  2. 云原生集成‌:通过容器化和微服务架构实现弹性归档能力8。

通过以上实践,企业可有效平衡数据存储成本与系统性能,适应业务长期发展需求。

归档表需与原表结构一致,并提供统一查询接口,确保业务无感知访问归档数据 这步怎么做的

DeepSeek-R1满血版 回答完成

深度思考完成 用时12秒,搜索全网28篇资料

在冷数据归档实践中,实现归档表与原表结构一致并提供统一查询接口,需通过以下步骤完成:


一、‌归档表结构一致性设计

  1. 表结构克隆

    • 使用与原表相同的字段定义、索引和约束创建归档表,例如通过SQL语句克隆空表结构:
       

      sqlCopy Code

      CREATE TABLE archive_table AS SELECT * FROM main_table WHERE 1=0;

      (此方法仅复制表结构,不迁移数据2)
  2. 分布式场景兼容

    • 在PolarDB-X等分布式数据库中,需同步主表的分区规则、索引类型(如列存索引CCI)到归档表,避免因结构差异导致查询异常8。

二、‌统一查询接口实现

  1. 视图或中间件路由

    • 视图层封装‌:通过数据库视图将主表与归档表合并查询,例如:
       

      sqlCopy Code

      CREATE VIEW combined_view AS SELECT * FROM main_table UNION ALL SELECT * FROM archive_table;

    • 中间件路由‌:利用分布式数据库的透明路由功能(如PolarDB-X冷数据源配置),自动将查询分发到主表或归档表18。
  2. 查询优化策略

    • 在归档表上建立与原表一致的索引,确保查询性能不因数据迁移而下降3。
    • 针对高频查询字段(如时间范围字段)优化归档表索引,减少跨表查询时的性能损耗8。

三、‌数据迁移与一致性保障

  1. 分批迁移降低风险

    • 通过分批次执行INSERT INTO archive_table SELECT ...DELETE FROM main_table操作,避免单次迁移数据量过大导致的锁表或事务超时25。
  2. 事务完整性控制

    • 在迁移过程中启用事务,确保数据从主表删除前已成功写入归档表,避免数据丢失5。
    • 采用低峰期执行迁移任务,降低对业务实时操作的影响6。

四、‌业务无感知设计要点

  1. 前端接口透明化

    • 保持业务代码中原有的SQL查询语句不变,通过数据库层(视图或路由规则)屏蔽底层数据分布细节18。
  2. 动态数据访问策略

    • 结合冷热分离规则,优先查询主表,仅当数据不存在时自动查询归档表,例如:
       

      sqlCopy Code

      SELECT * FROM main_table WHERE id=100 UNION ALL SELECT * FROM archive_table WHERE id=100 LIMIT 1;

  3. 兼容性测试

    • 归档完成后验证业务场景(如历史订单查询、报表生成),确保联合查询结果与原表一致58。

五、‌典型实现案例(以PolarDB-X为例)

  1. 配置冷数据源

     

    sqlCopy Code

    -- 创建冷数据存储源 CREATE STORAGE cold_storage TYPE='OSS' ... -- 绑定归档规则 ALTER TABLE main_table SET ARCHIVE POLICY = 'AFTER 6 MONTHS' STORAGE cold_storage;

    (系统自动将过期数据迁移至OSS,并提供统一查询接口18)

  2. 查询示例

    • 业务直接执行SELECT * FROM main_table WHERE create_time < '2024-01-01',数据库自动路由到主表或归档表8。

通过以上设计,可确保业务层无需感知数据存储位置差异,同时满足归档数据的低成本存储与高效访问需求12。

在冷数据归档实践中,实现归档表与原表结构一致并提供统一查询接口,需通过以下步骤完成:

一、‌归档表结构一致性设计‌

表结构克隆‌

使用与原表相同的字段定义、索引和约束创建归档表,例如通过SQL语句克隆空表结构:
sql
Copy Code
CREATE TABLE archive_table AS SELECT * FROM main_table WHERE 1=0;  

(此方法仅复制表结构,不迁移数据)

分布式场景兼容‌

在PolarDB-X等分布式数据库中,需同步主表的分区规则、索引类型(如列存索引CCI)到归档表,避免因结构差异导致查询异常。
二、‌统一查询接口实现‌

视图或中间件路由‌

视图层封装‌:通过数据库视图将主表与归档表合并查询,例如:
sql
Copy Code
CREATE VIEW combined_view AS  
SELECT * FROM main_table  
UNION ALL  
SELECT * FROM archive_table;  

中间件路由‌:利用分布式数据库的透明路由功能(如PolarDB-X冷数据源配置),自动将查询分发到主表或归档表。

查询优化策略‌

在归档表上建立与原表一致的索引,确保查询性能不因数据迁移而下降。
针对高频查询字段(如时间范围字段)优化归档表索引,减少跨表查询时的性能损耗。
三、‌数据迁移与一致性保障‌

分批迁移降低风险‌

通过分批次执行INSERT INTO archive_table SELECT ...和DELETE FROM main_table操作,避免单次迁移数据量过大导致的锁表或事务超时。

事务完整性控制‌

在迁移过程中启用事务,确保数据从主表删除前已成功写入归档表,避免数据丢失。
采用低峰期执行迁移任务,降低对业务实时操作的影响。
四、‌业务无感知设计要点‌

前端接口透明化‌

保持业务代码中原有的SQL查询语句不变,通过数据库层(视图或路由规则)屏蔽底层数据分布细节。

动态数据访问策略‌

结合冷热分离规则,优先查询主表,仅当数据不存在时自动查询归档表,例如:
sql
Copy Code
SELECT * FROM main_table WHERE id=100  
UNION ALL  
SELECT * FROM archive_table WHERE id=100 LIMIT 1;  


兼容性测试‌

归档完成后验证业务场景(如历史订单查询、报表生成),确保联合查询结果与原表一致。
五、‌典型实现案例(以PolarDB-X为例)‌

配置冷数据源‌

sql
Copy Code
-- 创建冷数据存储源  
CREATE STORAGE cold_storage TYPE='OSS' ...  
-- 绑定归档规则  
ALTER TABLE main_table  
SET ARCHIVE POLICY = 'AFTER 6 MONTHS' STORAGE cold_storage;  


(系统自动将过期数据迁移至OSS,并提供统一查询接口)

查询示例‌

业务直接执行SELECT * FROM main_table WHERE create_time < '2024-01-01',数据库自动路由到主表或归档表。

通过以上设计,可确保业务层无需感知数据存储位置差异,同时满足归档数据的低成本存储与高效访问需求。

2.long pull, websocket, sse,生态兼容与时间

长轮询(Long Polling)、WebSocket、SSE 的核心区别与生态兼容性总结


一、‌本质差异
  1. 长轮询(Long Polling)

    • 本质‌:HTTP 轮询的优化版本,客户端发起请求后,服务器挂起直到数据更新或超时才响应,减少无效请求57。
    • 通信模式‌:单向(客户端主动拉取),但通过挂起连接模拟“准实时”效果57。
  2. WebSocket

    • 本质‌:基于 TCP 的全双工协议,通过 HTTP 握手升级建立持久连接,支持双向实时通信37。
    • 通信模式‌:双向(客户端与服务器均可主动发送数据),适用于高实时性交互场景38。
  3. SSE(Server-Sent Events)

    • 本质‌:基于 HTTP 的单向数据流协议,服务器主动向客户端推送数据,客户端仅需建立一次连接35。
    • 通信模式‌:单向(仅服务器向客户端推送),适合事件驱动型场景35。

二、‌生态兼容性对比
技术浏览器兼容性协议依赖移动端支持
长轮询全浏览器支持(包括 IE)67纯 HTTP良好,兼容所有移动设备6
WebSocket现代浏览器支持,部分老版本 Android 不兼容78独立 TCP 协议(HTTP 升级)主流支持,需处理兼容性78
SSE支持 HTML5 的浏览器,IE 不支持58HTTP 长连接流iOS/Android 主流支持58

三、‌时间特性与性能
  1. 延迟

    • 长轮询‌:延迟中等(取决于数据更新频率)7。
    • WebSocket‌:延迟极低(全双工,无需重复握手)37。
    • SSE‌:延迟低(单向流式推送),但弱于 WebSocket37。
  2. 资源消耗

    • 长轮询‌:服务器需维护挂起连接,高并发时资源压力大57。
    • WebSocket‌:连接建立后开销小,适合高频交互38。
    • SSE‌:轻量级,服务器单向推送,适合低频事件场景35。

四、‌适用场景与选择建议
  1. 长轮询

    • 场景‌:兼容性要求高、实时性要求中等的通知类应用(如配置中心更新)57。
    • 缺点‌:服务器资源占用较高,不适合大规模并发57。
  2. WebSocket

    • 场景‌:双向实时交互(如聊天室、在线游戏、协同编辑)37。
    • 缺点‌:实现复杂,需处理连接状态与兼容性问题78。
  3. SSE

    • 场景‌:服务器单向推送(如实时新闻、股票行情、日志流)35。
    • 优势‌:自动重连、轻量级,适合 HTTP 生态集成35。

总结

  • 协议本质‌:长轮询是 HTTP 的变种,WebSocket 是独立协议,SSE 是 HTTP 流37。
  • 核心差异‌:通信方向(单向/双向)、实时性、资源开销35。
  • 选型原则‌:根据实时性需求、技术栈兼容性、服务器资源综合决策57。

3.md5在判断什么完整性

MD5在文件分片传输场景中用于验证‌分片数据完整性‌及‌整体文件一致性‌:每个传输分片生成独立的MD5校验值,接收方逐片比对哈希值确保分片数据无损坏;全部分片传输完成后,重新合并文件并计算整体MD5值,与源文件哈希匹配则证明分片顺序正确且合并无误,从而同时保障分片级与文件级的完整性,防止传输过程中的数据篡改或丢包问题。

相关文章:

云盘系统设计

需求背景 网盘面向大量C端用户 1000w用户 DAU 20% 每天10次 QPS: 1000w * 0.2 * 10 / 100k 500 峰值估计&#xff1a;500 * 5 2500 功能需求 支持上传&#xff0c;下载&#xff0c;多端共同在线编辑&#xff0c;数据冲突处理 非功能需求 1.latency 20s左右 2.可用性与…...

西电雨课堂《知识产权法》课后作业答案

目录 第 1 章 1.1 课后作业 1.2 课后作业 第 2 章 2.1 课后作业 2.2 课后作业 2.3 课后作业 2.4 课后作业 2.5 课后作业 2.6 课后作业 2.7 课后作业 2.8 课后作业 2.9 课后作业 2.10 课后作业 第 3 章 3.1 课后作业 3.2 课后作业 3.3 课后作业 3…...

通信协议记录仪-产品规格书

以下是为 ​​通信协议记录仪(ProtoLogger Pro)​​ 的​​详细产品规格书​​,覆盖 ​​技术细节、场景需求、竞品差异化​​,确保可作为产品开发、市场营销及竞品分析的核心依据。 ​​通信协议记录仪产品规格书​​ ​​产品名称​​:ProtoLogger Pro(中文名称:蹲守…...

订单系统冷热分离方案:优化性能与降低存储成本

随着时间推移&#xff0c;订单数据不断积累。在电商平台或者服务型应用中&#xff0c;订单数据是核心数据之一。然而&#xff0c;随着数据量的增长&#xff0c;如何高效存储、管理和查询这些数据成为了系统架构设计的重要问题。在大多数情况下&#xff0c;订单数据的处理不仅涉…...

数据结构学习笔记

第 1 章 绪论 【考纲内容】 &#xff08;一&#xff09;数据结构的基本概念 &#xff08;二&#xff09;算法的基本概念 算法的时间复杂度和空间复杂度 【知识框架】 【复习提示】 本章内容是数据结构概述&#xff0c;并不在考研大纲中。读者可通过对本章的学习&#xff0c;初步…...

读懂 Vue3 路由:从入门到实战

在构建现代化单页应用&#xff08;SPA&#xff09;时&#xff0c;Vue3 凭借其简洁高效的特性成为众多开发者的首选。 而 Vue3 路由&#xff08;Vue Router&#xff09;则是 Vue3 生态中不可或缺的一部分&#xff0c;它就像是单页应用的 “导航地图”&#xff0c;帮助用户在不同…...

Aws S3上传优化

上传大约 3.4GB 的 JSON 文件&#xff0c;zip算法压缩后约为 395MB&#xff0c;上传至 S3 效率优化&#xff0c;有一些优化方案可以提高上传速率。下面是几种可能的优化方式&#xff0c;包括选择压缩算法、调整上传方式、以及其他可能的方案。 方案 1. 选择更好的压缩算法 压…...

Python 数据智能实战 (8):基于LLM的个性化营销文案

写在前面 —— 告别群发轰炸,拥抱精准沟通:用 LLM 为你的用户量身定制营销信息 在前面的篇章中,我们学习了如何利用 LLM 增强用户理解(智能分群)、挖掘商品关联(语义购物篮)、提升预测精度(融合文本特征的流失预警)。我们不断地从数据中提取更深层次的洞察。 然而,…...

html:table表格

表格代码示例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!-- 标准表格。 --><table border"5"cellspacing&qu…...

2.maven 手动安装 jar包

1.背景 有的时候&#xff0c;maven仓库无法下载&#xff0c;可以手动安装。本文以pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar为例。 2.预先准备 下载文件到本地指定位置。 2.1.安装pom mvn install:install-file \-Dfile/home/wind/tmp/pentaho-aggdesigner-5.1.5-jh…...

C++ unordered_set unordered_map

上篇文章我们讲解了哈希表的实现&#xff0c;这节尝试使用哈希表来封装unordered_set/map 1. unordered_set/map的框架 封装的过程实际上与set/map类似&#xff0c;在unordered_set/map层传递一个仿函数&#xff0c;用于取出key值 由于我们平常使用的都是unordered_set/map&…...

第37课 绘制原理图——放置离页连接符

什么是离页连接符&#xff1f; 前边我们介绍了网络标签&#xff08;Net Lable&#xff09;&#xff0c;可以让两根导线“隔空相连”&#xff0c;使原理图更加清爽简洁。 但是网络标签的使用也具有一定的局限性&#xff0c;对于两张不同Sheet上的导线&#xff0c;网络标签就不…...

< 自用文 Texas style Smoker > 美式德克萨斯烟熏炉 从设计到实现 (第一部分:烹饪室与燃烧室)

原因&#xff1a; 没钱还馋&#xff01; 但有手艺。 预计目标&#xff1a; 常见的两种偏置式烟熏炉&#xff08;Offset Smoker&#xff09; 左边边是标准偏置式&#xff08;Standard Offset&#xff09;&#xff0c;右边是反向流动式&#xff08;Reverse Flow Offset&#x…...

【现代深度学习技术】现代循环神经网络03:深度循环神经网络

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…...

AimRT从入门到精通 - 03Channel发布者和订阅者

刚接触AimRT的小伙伴可能会疑惑&#xff0c;这个Channel和RPC&#xff08;后面讲的&#xff09;到底是什么呢&#xff1f; 但是当我们接触了之后&#xff0c;就会发现&#xff0c;其本质类似ROS的Topic通信&#xff01;&#xff08;其本质基于发布订阅模型&#xff09; 接下来…...

MySQL初阶:数据库基础,数据库和表操作,数据库中的数据类型

1.数据库基础 数据库是一个客户端——服务器结构的程序。 服务器是真正的主体&#xff0c;负责保存和管理数据&#xff0c;数据都存储在硬盘上 数据库处理的主要内容是数据的存储&#xff0c;查找&#xff0c;修改&#xff0c;排序&#xff0c;统计等。 关系型数据库&#…...

AI 驱动的智能交通系统:从拥堵到流畅的未来出行

最近研学过程中发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击链接跳转到网站人工智能及编程语言学习教程。读者们可以通过里面的文章详细了解一下人工智能及其编程等教程和学习方法。下面开始对正文内容的…...

Python清空Word段落样式的方法

在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档&#xff0c;包括清空段落样式。以下是几种清空段落样式的方法&#xff1a; 方法一&#xff1a;直接设置段落样式为"Normal" from docx import Documentdoc Document(your_document.docx) # 打…...

[javaEE]网络编程

目录 socket对tcp ServerSocket ServerSocket 构造方法&#xff1a; ServerSocket 方法&#xff1a; socket 实现回显服务器和客户端 由于我们之前已经写多了socket对udq的实现&#xff0c;所以我们这节&#xff0c;主要将重心放在Tcp之上 socket对tcp ServerS…...

组件通信-mitt

mitt&#xff1a;与消息订阅与发布&#xff08;pubsub&#xff09;功能类似&#xff0c;可以实现任意组件间通信。 第一步&#xff1a;安装mitt npm i mitt 第二步&#xff1a;新建文件&#xff1a;src\utils\emitter.ts // 引入mitt import mitt from "mitt"; //调…...

微软发布了最新的开源推理模型套件“Phi-4-Reasoning

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Socat 用法详解:网络安全中的瑞士军刀

Socat 用法详解&#xff1a;网络安全中的强大工具 引言 socat&#xff08;SOcket CAT&#xff09;是一款功能强大的命令行工具&#xff0c;被誉为“网络瑞士军刀”&#xff0c;广泛应用于数据传输、端口转发和网络调试等场景。它支持多种协议和数据通道&#xff08;如文件、管…...

精益数据分析(36/126):SaaS商业模式的指标动态与实践案例

精益数据分析&#xff08;36/126&#xff09;&#xff1a;SaaS商业模式的指标动态与实践案例 在创业与数据分析的学习道路上&#xff0c;我们不断探索各种商业模式的核心要点。今天&#xff0c;依旧怀揣着和大家共同进步的想法&#xff0c;深入研读《精益数据分析》中SaaS商业…...

2.LED灯的控制和按键检测

目录 STM32F103的GPIO口 GPIO口的作用 GPIO口的工作模式 input输入检测 -- 向内检测 output控制输出 -- 向外输出 寄存器 寄存器地址的确定 配置GPIO口的工作模式 时钟的开启和关闭 软件编程驱动 LED 灯 硬件 软件 软件编程驱动 KEY 按键 硬件 软件 按键消抖 代码 STM32F…...

架构师面试(三十八):注册中心架构模式

题目 在微服务系统中&#xff0c;当服务达到一定数量时&#xff0c;通常需要引入【注册中心】组件&#xff0c;以方便服务发现。 大家有没有思考过&#xff0c;注册中心存在的最根本的原因是什么呢&#xff1f;注册中心在企业中的最佳实践是怎样的&#xff1f;注册中心的服务…...

Go-web开发之帖子功能

帖子功能 route.go r.Use(middleware.JWTAuthMiddleware()){r.POST("/post", controller.CreatePostHandler)r.GET("/post/:id", controller.GetPostDetailHandler)}post.go 定义帖子结构 type Post struct {Id int64 json:"id" …...

MYSQL-设计表

一.范式 数据库的范式是⼀组规则。在设计关系数据库时&#xff0c;遵从不同的规范要求&#xff0c;设计出合理的关系型数 据库&#xff0c;这些不同的规范要求被称为不同的范式。 关系数据库有六种范式&#xff1a;第⼀范式&#xff08;1NF&#xff09;、第⼆范式&#xff08;…...

动态思维——AI与思维模型【91】

一、定义 动态思维思维模型是一种强调在思考问题和分析情况时&#xff0c;充分考虑到事物的变化性、发展性和相互关联性&#xff0c;不局限于静态的、孤立的视角&#xff0c;而是以发展变化的眼光看待事物&#xff0c;能够根据不同时间、环境和条件的变化&#xff0c;灵活调整…...

文献阅读篇#7:5月一区好文阅读,BFA-YOLO,用于建筑信息建模!(下)

期刊简介&#xff1a;《Advanced Engineering Informatics》创刊于2002年&#xff0c;由Elsevier Ltd出版商出版&#xff0c;出版周期Quarterly。该刊已被SCIE数据库收录&#xff0c;在中科院最新升级版分区表中&#xff0c;该刊分区信息为大类学科工程技术1区&#xff0c;2023…...

【Linux网络编程】http协议的状态码,常见请求方法以及cookie-session

本文专栏&#xff1a;Linux网络编程 目录 一&#xff0c;状态码 重定向状态码 1&#xff0c;永久重定向&#xff08;301 Moved Permanently&#xff09; 2&#xff0c;临时重定向&#xff08;302 Found&#xff09; 二&#xff0c;常见请求方法 1&#xff0c;HTTP常见Hea…...

ARM 指令集(ubuntu环境学习)第六章:ARM 编程技巧与优化策略

在本章中,我们将介绍一些在 ARM 架构上编写高效代码的技巧和常见优化策略,帮助您在嵌入式系统中获得更低延迟、更高吞吐和更低功耗。 6.1 寄存器利用与最小化内存访问 多用寄存器 ARM 通用寄存器(r0–r12)数量充足,尽量将临时变量保留在寄存器中,减少对内存的读写。 避免…...

柔性超声耦合剂的选择与设计-可穿戴式柔性超声耦合剂面临的难题

柔性PZT压电薄膜&#xff1a;破解可穿戴式超声耦合剂难题的关键材料&#xff01; 随着可穿戴技术的快速发展&#xff0c;超声设备正朝着轻量化、柔性化和高集成度方向演进。在医学诊断、健康监测和智能穿戴领域&#xff0c;可穿戴式超声设备因其无创、实时、动态成像等优势受到…...

XCTF-pwn(二)

guess_num 看一下文件信息 利用gets函数将seed[0]给覆盖掉 距离0x20 我们需要输入十次随机数产生的值 写一个c程序先预判当seed是a的时候产生的随机数分别是多少 payload from pwn import* from ctypes import* context.log_leveldebugrremote("61.147.171.105", 6…...

AI外挂RAG:大模型时代的检索增强生成技术

目录 引言 一、RAG是什么&#xff1f; 二、RAG为什么会出现&#xff1f; 三、RAG的工作原理 四、RAG的技术优势 五、RAG的应用场景 六、RAG对AI行业的影响 七、RAG面临的挑战 引言 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;如ChatGPT、DeepSe…...

SpringTask

Spring Task是Spring框架提供的任务调度工具&#xff0c;可以按照约定的时间自动执行某个代码逻辑 应用场景&#xff1a;信用卡每月还款提醒、火车票售票系统处理未支付订单 fixedDelay&#xff1a;上一次任务执行完成后多长时间&#xff08;ms&#xff09;执行下一次任务 fixe…...

Sphinx 文档图片点击放大

文章目录 问题描述解决方案步骤 1&#xff1a;创建 JavaScript 文件步骤 2&#xff1a;编写 JavaScript 代码步骤 3&#xff1a;更新 Sphinx 配置 高级定制为所有图片添加点击功能添加缩放控制 总结 在使用 Sphinx 生成技术文档时&#xff0c;我们经常需要在文档中嵌入截图和示…...

菜鸟之路Day29一一MySQL之DDL

菜鸟之路Day29一一MySQL之DDL 作者&#xff1a;blue 时间&#xff1a;2025.5.2 文章目录 菜鸟之路Day29一一MySQL之DDL0.概述1.DDL之数据库操作1.1查询1.2创建1.3使用1.4删除 2.DDL之表操作2.1创建表2.2数据类型2.3查询表2.4修改表结构2.5删除表 0.概述 文章内容学习自黑马程…...

架构师面试(三十七):监控系统架构模式

题目 监控是在产品生命周期的运维环节&#xff0c;能对产品的关键指标数据进行【实时跟踪】并对异常数据进行【实时报警】。 一句话描述&#xff0c;监控系统可以帮我们【主动预防和发现】业务系统中的问题。 我们常说&#xff0c;监控系统是 “粮草”&#xff0c;业务系统是…...

【Redis】Hash哈希

文章目录 注意个问题hset命令&#xff08;核心&#xff09;hget命令&#xff08;核心&#xff09;hexists命令hdel命令hkeys和hvals命令hgetall和hmget命令hlen命令hsetnx命令hincrby命令哈希命令小结哈希编码方式使用场景1.关系型数据表保存用户的信息Redis三种缓存方式对比1.…...

【SpringBoot】Spring中事务的实现:声明式事务@Transactional、编程式事务

1. 准备工作 1.1 在MySQL数据库中创建相应的表 用户注册的例子进行演示事务操作&#xff0c;索引需要一个用户信息表 &#xff08;1&#xff09;创建数据库 -- 创建数据库 DROP DATABASE IF EXISTS trans_test; CREATE DATABASE trans_test DEFAULT CHARACTER SET utf8mb4;…...

从零开始讲DDR(9)——AXI 接口MIG 使用(2)

一、前言 在之前的文章中&#xff0c;我们介绍了官方DDR MIG AXI接口的例程的整体框架&#xff0c;在本文中&#xff0c;我们将着重介绍例程中关于数据产生&#xff0c;及驱动到AXI接口的相关逻辑实现。 二、data_gen 在例程中&#xff0c;有ddr4_v2_2_8_data_gen这样一个文件…...

组件通信-props

props 是使用频率最高的一种通信方式&#xff0c;父>子 子>父 父传子&#xff1a;属性值 是非函数子传父&#xff1a;属性值 是函数 父组件 <script setup lang"ts"> import { ref } from vue import Child from ./Child.vue const car ref(奥迪) c…...

纯原生Java实现:获取整个项目中指定接口所有的实现类

不使用第三方&#xff0c;不使用属性文件,不指定包名&#xff0c;获取整个系统中某一个接口所有的实现类&#xff0c;纯Java实现 /*** 类查找器&#xff0c;用于扫描类路径中的所有类&#xff0c;并找出指定类的实现类。* 该类通过递归扫描类路径下的所有 .class 文件&#xf…...

反射机制补充

不同对象实例的地址不同 在 Java 里&#xff0c;每当使用 new 关键字创建一个对象时&#xff0c;JVM 会在堆内存中为该对象分配一块新的内存空间&#xff0c;每个对象实例都有自己独立的内存地址。所以不同的对象实例&#xff0c;其内存地址是不同的。 以下是一个简单示例&am…...

计算机视觉的未来发展趋势

计算机视觉的未来发展趋势主要集中在以下几个方面&#xff1a; 1. 自监督学习与少样本学习 自监督学习&#xff1a;通过从无标签的数据中提取有用特征&#xff0c;克服对大量标注数据的依赖。2025年&#xff0c;基于大规模图像数据的自监督预训练模型将更加成熟&#xff0c;能…...

轻量级网页版视频播放器

用deepseek开发的轻量级&#xff0c;网页版视频播放器 可以选择本地文件 可以播放、暂停、全屏、有进度条和时间进度 代码如下&#xff1a; 新建.txt文本文档&#xff0c;把代码复制粘贴进去&#xff0c;把.txt文档后缀名改为.html&#xff0c;用浏览器打开即可使用 <!DO…...

18. LangChain分布式任务调度:大规模应用的性能优化

引言&#xff1a;从单机到万级并发的进化 2025年某全球客服系统通过LangChain分布式改造&#xff0c;成功应对黑五期间每秒12,000次的咨询请求。本文将基于LangChain的分布式架构&#xff0c;详解如何实现AI任务的自动扩缩容与智能调度。 一、分布式系统核心指标 1.1 性能基准…...

C/C++工程师使用 DeepSeek

一、使用 DeepSeek 生成 C/C 代码 在 C/C 开发中&#xff0c;很多时候需要编写一些常见功能的代码&#xff0c;如排序算法、文件读写操作、数据结构的实现等。借助 DeepSeek&#xff0c;工程师只需用自然语言清晰描述需求&#xff0c;它就能依据大量的代码数据和深度学习算法&a…...

数据结构-线性结构(链表、栈、队列)实现

公共头文件common.h #define TRUE 1 #define FALSE 0// 定义节点数据类型 #define DATA_TYPE int单链表C语言实现 SingleList.h #pragma once#include "common.h"typedef struct Node {DATA_TYPE data;struct Node *next; } Node;Node *initList();void headInser…...

第 7 篇:跳表 (Skip List):简单务实的概率性选手

前面几篇我们都在探讨各种基于“树”结构的有序表实现&#xff0c;它们通过精巧的平衡策略&#xff08;高度、颜色、大小&#xff09;和核心的“旋转”操作来保证 O(log N) 的性能。今天&#xff0c;我们要介绍一位画风完全不同的选手——跳表 (Skip List)。它不依赖树形结构&a…...