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

数字化工厂中央控制室驾驶舱系统 API接口文档

数字化工厂中央控制室驾驶舱系统 API接口文档

本文档详细描述了数字化工厂中央控制室驾驶舱系统的API接口规范,包括中端服务提供的数据接口和算法接口。

1. 通用规范

1.1 基础URL

  • 后端服务: http://localhost:8000
  • 中端服务数据API: http://localhost:8001
  • 中端服务算法API: http://localhost:8002

1.2 响应格式

所有API返回标准JSON格式,包含以下字段:

成功响应:

{"status": "success","data": { ... }  // 响应数据,根据接口不同而不同
}

错误响应:

{"status": "error","message": "错误信息描述"
}

1.3 认证方式

API使用Bearer Token认证:

Authorization: Bearer {token}

2. 中端数据API接口

2.1 获取指定类型的最新数据

获取特定类型数据的最新记录。

  • URL: /api/collector/data/{data_type}
  • 方法: GET
  • URL参数:
    • data_type: 数据类型 (machine_data, agv_data, stamping_data等)
  • 查询参数:
    • limit: 返回记录数量,默认10

请求示例:

GET /api/collector/data/machine_data?limit=5

成功响应:

[{"_id": "634f2a1b3e01a5c33e8b4567","device_id": "CNC-001","device_type": "cnc","status": "running","temperature": 65.2,"timestamp": "2025-05-07T14:30:25.123Z"},...
]

2.2 获取历史数据

获取指定时间范围内的历史数据。

  • URL: /api/collector/data/{data_type}/history
  • 方法: GET
  • URL参数:
    • data_type: 数据类型
  • 查询参数:
    • start_time: 开始时间 (ISO格式)
    • end_time: 结束时间 (ISO格式)
    • limit: 返回记录数量,默认100

请求示例:

GET /api/collector/data/agv_data/history?start_time=2025-05-01T00:00:00&end_time=2025-05-07T23:59:59

成功响应:

[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 120.5,"y": 85.3},"battery_level": 78.5,"timestamp": "2025-05-07T10:15:33.456Z"},...
]

2.3 获取指定设备数据

获取特定设备的数据。

  • URL: /api/collector/device/{device_type}/{device_id}
  • 方法: GET
  • URL参数:
    • device_type: 设备类型
    • device_id: 设备ID
  • 查询参数:
    • limit: 返回记录数量,默认10

请求示例:

GET /api/collector/device/agv/AGV-001

成功响应:

[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 120.5,"y": 85.3},"battery_level": 78.5,"timestamp": "2025-05-07T10:15:33.456Z"},...
]

2.4 获取所有AGV位置

获取所有AGV的最新位置数据。

  • URL: /api/collector/agv/positions
  • 方法: GET

请求示例:

GET /api/collector/agv/positions

成功响应:

[{"_id": "634f2a1b3e01a5c33e8b4568","device_id": "AGV-001","device_type": "agv","position": {"x": 120.5,"y": 85.3},"timestamp": "2025-05-07T15:30:10.123Z"},...
]

3. 中端算法API接口

3.1 路径规划

为AGV规划从起点到终点的路径。

  • URL: /api/algorithm/path/plan
  • 方法: POST
  • 请求体:
{"agv_id": "AGV-001","start_point": {"x": 100,"y": 100},"end_point": {"x": 500,"y": 400},"obstacles": [{"x": 300,"y": 300},{"x": 350,"y": 300}],"priority": 2
}

成功响应:

{"agv_id": "AGV-001","path": [{"x": 100,"y": 100},{"x": 150,"y": 150},...{"x": 500,"y": 400}],"distance": 565.68,"estimated_time": 565.68
}

3.2 任务调度

为多个AGV分配多个任务。

  • URL: /api/algorithm/task/schedule
  • 方法: POST
  • 请求体:
{"tasks": [{"id": "TASK-001","start": {"x": 100,"y": 100},"end": {"x": 500,"y": 400},"priority": 3},{"id": "TASK-002","start": {"x": 200,"y": 200},"end": {"x": 600,"y": 500},"priority": 1}],"available_agvs": ["AGV-001", "AGV-002", "AGV-003"]
}

成功响应:

{"status": "success","assignments": [{"agv_id": "AGV-001","task_id": "TASK-001","path": [{"x": 100,"y": 100},...{"x": 500,"y": 400}],"estimated_time": 565.68,"start_time": "2025-05-07T16:45:20.123Z"},{"agv_id": "AGV-002","task_id": "TASK-002","path": [{"x": 200,"y": 200},...{"x": 600,"y": 500}],"estimated_time": 509.9,"start_time": "2025-05-07T16:45:20.123Z"}],"total_assigned": 2,"total_pending": 0
}

3.3 获取AGV位置

获取特定AGV的当前位置。

  • URL: /api/algorithm/agv/{agv_id}/position
  • 方法: GET
  • URL参数:
    • agv_id: AGV ID

请求示例:

GET /api/algorithm/agv/AGV-001/position

成功响应:

{"x": 120.5,"y": 85.3
}

3.4 更新AGV位置

更新特定AGV的位置。

  • URL: /api/algorithm/agv/{agv_id}/position
  • 方法: PUT
  • URL参数:
    • agv_id: AGV ID
  • 请求体:
{"x": 150.0,"y": 90.5
}

成功响应:

{"status": "success","message": "AGV AGV-001 位置已更新"
}

4. WebSocket事件

系统使用WebSocket提供实时数据更新。

4.1 WebSocket连接

  • URL: ws://localhost:8000/ws

4.2 事件类型

4.2.1 设备状态更新
{"event": "device_status","data": {"device_id": "CNC-001","device_type": "cnc","status": "running","temperature": 67.8,"timestamp": "2025-05-07T17:05:12.345Z"}
}
4.2.2 AGV位置更新
{"event": "agv_status","data": {"device_id": "AGV-001","device_type": "agv","status": "busy","position": {"x": 125.8,"y": 87.2},"battery_level": 77.8,"timestamp": "2025-05-07T17:05:15.678Z"}
}
4.2.3 AGV路径更新
{"event": "agv_path","data": {"agv_id": "AGV-001","path": [{"x": 125.8,"y": 87.2},...{"x": 500,"y": 400}],"timestamp": "2025-05-07T17:05:20.123Z"}
}

5. 错误代码

状态码错误类型描述
400Bad Request请求参数错误
401Unauthorized未授权访问
403Forbidden权限不足
404Not Found资源不存在
500Internal Server Error服务器内部错误

6. 数据模型

6.1 设备数据模型

{"device_id": "设备ID","device_type": "设备类型","status": "设备状态","timestamp": "时间戳",// 其他属性根据设备类型不同而不同
}

6.2 AGV数据模型

{"device_id": "AGV ID","device_type": "agv","status": "AGV状态","position": {"x": "X坐标","y": "Y坐标"},"orientation": "方向角度","battery_level": "电量百分比","current_task": "当前任务ID","timestamp": "时间戳"
}

6.3 路径数据模型

{"agv_id": "AGV ID","start_point": {"x": "起点X坐标","y": "起点Y坐标"},"end_point": {"x": "终点X坐标","y": "终点Y坐标"},"path": [{"x": "点X坐标","y": "点Y坐标"},// 更多路径点],"distance": "路径长度","estimated_time": "预计时间","timestamp": "时间戳"
}

6.4 任务数据模型

{"id": "任务ID","start_point": {"x": "起点X坐标","y": "起点Y坐标"},"end_point": {"x": "终点X坐标","y": "终点Y坐标"},"priority": "优先级","assigned_agv": "分配的AGV ID","status": "任务状态","created_at": "创建时间","assigned_at": "分配时间","completed_at": "完成时间"
}

数字化工厂中央控制室驾驶舱系统

项目概述

本项目是一个数字化工厂中央控制室驾驶舱系统,提供实时、全面的工厂运行状态可视化监控。系统集成了生产线数据采集、设备状态监控、生产效率分析、质量控制、能耗监测和预测性维护功能,为工厂管理者提供决策支持。

系统特点

  • 全面的数据采集:实时采集生产线、设备和环境数据
  • 多维度可视化:大屏展示工厂运行状态、KPI指标和异常警报
  • 实时监控预警:设备异常、质量波动和生产偏差实时告警
  • 生产趋势分析:产能、质量、能耗等多维度数据分析
  • 决策辅助功能:基于历史数据的生产优化建议
  • 智能AGV调度:基于优化算法的AGV路径规划和任务分配

系统架构

DigitalFactoryDashboard/
├── backend/                # 后端服务
│   ├── api/                # API接口
│   ├── data_acquisition/   # 数据采集模块
│   ├── data_processing/    # 数据处理与分析
│   └── database/           # 数据存储管理
├── middleware/             # 中端服务
│   ├── collector/          # 数据采集中间件
│   ├── database/           # 数据分类存储 
│   ├── algorithm/          # 算法模块
│   │   ├── path_planning/  # 路径规划算法
│   │   └── scheduling/     # 调度算法
│   └── api/                # 中端API接口
├── frontend/               # 前端大屏显示
│   ├── src/                # 源代码
│   │   ├── components/     # 组件
│   │   ├── pages/          # 页面
│   │   └── utils/          # 工具函数
│   └── public/             # 静态资源
└── config/                 # 配置文件

主要功能

生产监控大屏

  • 工厂总体运行状况和KPI指标
  • 生产线实时状态和产能监控
  • 设备运行状态和健康度
  • 质量指标监控和异常点显示
  • 能耗监控和优化建议

设备管理面板

  • 设备实时状态和参数展示
  • 历史运行数据查询和图表分析
  • 设备异常原因追踪
  • 预测性维护预警
  • 设备效率分析

生产计划与执行

  • 生产计划完成率监控
  • 实时生产进度追踪
  • 订单完成状态展示
  • 生产瓶颈分析
  • 产能优化建议

质量控制大屏

  • 产品质量实时监控
  • 质量问题分布可视化
  • 质量趋势分析
  • 异常原因快速定位
  • SPC控制图表展示

能源管理面板

  • 工厂能源消耗监控
  • 不同工序能耗对比
  • 能耗异常检测与分析
  • 节能优化建议
  • 能耗成本统计

AGV智能调度系统

  • AGV实时状态监控
  • 智能路径规划与可视化
  • 任务自动分配与优化
  • 多AGV协同调度
  • 动态避障与路径重规划

技术栈

  • 后端:Python, FastAPI, SQLite, Pandas, NumPy, Scikit-learn
  • 中端:Python, MongoDB, Networkx, OSRM, PyTorch
  • 前端:React, ECharts, Ant Design, WebSocket, Three.js
  • 通信:RESTful API, WebSocket, MQTT

接口规范

1. 数据采集接口

数据采集中间件提供以下接口:

GET /api/collector/data/{data_type}
返回指定类型的最新采集数据GET /api/collector/data/{data_type}/history
返回指定类型的历史数据参数:
- data_type: 数据类型 (production, device, energy, agv等)
- start_time: 开始时间
- end_time: 结束时间

2. 算法接口

路径规划算法提供以下接口:

POST /api/algorithm/path/plan
输入参数:
{"agv_id": "AGV-001","start_point": {"x": 10, "y": 20},"end_point": {"x": 90, "y": 80},"obstacles": [{...}],"priority": 1
}返回:
{"path": [{"x": 10, "y": 20},{"x": 30, "y": 20},...],"distance": 120,"estimated_time": 60
}

任务调度算法接口:

POST /api/algorithm/task/schedule
输入参数:
{"tasks": [{"id": "TASK-001", "start": {"x":10, "y":20}, "end": {"x":90, "y":80}, "priority": 1},...],"available_agvs": ["AGV-001", "AGV-002"]
}返回:
{"assignments": [{"agv_id": "AGV-001", "task_id": "TASK-001", "path": [...], "start_time": "..."},...]
}

使用说明

详细的安装和使用说明将在项目开发完成后提供。

开发日志

2025-05-11 中端系统与算法模块集成

会话目的:为数字化工厂中央控制室驾驶舱系统添加中端数据采集系统和智能AGV路径规划算法模块

完成任务

  • 新增中端系统架构,包括数据采集中间件、MongoDB数据存储和算法模块
  • 实现A*路径规划算法和基于成本函数的任务调度算法
  • 创建中端API接口,提供路径规划和任务调度服务
  • 修改前端FactoryMap组件,支持AGV路径可视化显示
  • 修改AGVMonitor组件,实现AGV路径跟随功能

关键决策和解决方案

  • 采用三层架构设计:前端、中端、后端分离,中端专注于数据处理和算法支持
  • A*算法实现路径平滑处理,减少不必要的拐点
  • 任务调度算法基于多维度成本函数,综合考虑距离、电量和优先级
  • MongoDB用于存储分类数据,提供灵活的数据查询能力
  • WebSocket用于实时更新路径和AGV位置信息

使用的技术栈

  • 中端:Python、FastAPI、MongoDB、asyncio
  • 算法:A*路径规划、基于成本函数的多任务调度
  • 前端可视化:Canvas绘图、动画效果

修改的文件

  • 新增middleware目录及其子目录结构
  • middleware/database/db_config.py:MongoDB数据库配置
  • middleware/collector/data_collector.py:数据采集器
  • middleware/algorithm/path_planning/a_star.py:A*路径规划算法
  • middleware/algorithm/scheduling/task_scheduler.py:任务调度算法
  • middleware/api/data_api.py、algorithm_api.py:中端API接口
  • middleware/run.py:中端系统启动脚本
  • middleware/requirements.txt:中端系统依赖
  • frontend/src/pages/FactoryMap.js:修改支持路径显示
  • frontend/src/pages/AGVMonitor.js:修改支持路径跟随
  • README.md:更新系统架构和开发日志

2025-05-07 添加数据采集监控终端

会话目的:在系统中添加一个实时数据采集监控终端,用于可视化展示数据采集过程

完成任务

  • 添加数据采集监控终端功能,实时显示采集到的数据
  • 实现同设备类型的彩色显示效果
  • 每10条数据显示一次详细信息

关键决策和解决方案

  • 采用异步协程方式实现数据监控,不影响现有系统功能
  • 利用回调机制将数据管理器采集的数据传递给监控终端
  • 为不同设备类型设置不同颜色,提高数据可读性

使用的技术栈

  • Python、asyncio
  • 终端彩色输出

修改的文件

  • backend/run.py(添加了数据监控终端功能)
  • README.md(更新开发日志)

2025-05-10 系统浏览与熟悉

目的:数字化工厂中央控制室驾驶舱系统的整体架构和功能

完成

  • 浏览项目的基本结构与组织方式
  • 查看系统的技术栈和主要功能模块
  • 了解系统更新日志和新增的冲压车间监控功能

发现

  • 系统采用前后端分离架构,前端基于React,后端基于FastAPI
  • 系统具有全面的工厂监控功能,最新版本新增冲压车间监控模块
  • 系统包含丰富的数据可视化组件和实时监控能力

使用的技术栈

  • 前端:React, ECharts, Ant Design, WebSocket, Three.js
  • 后端:Python, FastAPI, SQLite, Pandas, NumPy, Scikit-learn

相关文章:

数字化工厂中央控制室驾驶舱系统 API接口文档

数字化工厂中央控制室驾驶舱系统 API接口文档 本文档详细描述了数字化工厂中央控制室驾驶舱系统的API接口规范,包括中端服务提供的数据接口和算法接口。 1. 通用规范 1.1 基础URL 后端服务: http://localhost:8000中端服务数据API: http://localhost:8001中端服…...

如何更改默认字体:ONLYOFFICE 协作空间、桌面编辑器、文档测试示例

在处理办公文件时,字体对提升用户体验至关重要。本文将逐步指导您如何在 ONLYOFFICE 协作空间、桌面应用及文档测试示例中自定义默认字体,以满足个性化需求,更好地掌控文档样式。 关于 ONLYOFFICE ONLYOFFICE 是一个国际开源项目&#xff0c…...

设计模式之工厂模式(二):实际案例

设计模式之工厂模式(一) 在阅读Qt网络部分源码时候,发现在某处运用了工厂模式,而且编程技巧也用的好,于是就想分享出来,供大家参考,理解的不对的地方请多多指点。 以下是我整理出来的类图: 关键说明&#x…...

基于VeRL源码深度拆解字节Seed的DAPO

1. 背景与现状:从PPO到GRPO的技术演进 1.1 PPO算法的基础与局限 Proximal Policy Optimization(PPO)作为当前强化学习领域的主流算法,通过重要性采样比率剪裁机制将策略更新限制在先前策略的近端区域内,构建了稳定的…...

zst-2001 历年真题 软件工程

软件工程 - 第1题 b 软件工程 - 第2题 c 软件工程 - 第3题 c 软件工程 - 第4题 b 软件工程 - 第5题 b 软件工程 - 第6题 0.未完成:未执行未得到目标。1.已执行:输入-输出实现支持2.已管理:过程制度化,项目遵…...

WSL 安装 Debian 12 后,Linux 如何安装 redis ?

在 WSL 的 Debian 12 上安装 Redis 的步骤如下: 1. 更新系统包列表 sudo apt update && sudo apt upgrade -y2. 安装 Redis sudo apt install redis-server -y3. 启动 Redis 服务 sudo systemctl start redis4. 设置开机自启 sudo systemctl enable red…...

在Ubuntu系统下编译OpenCV 4.8源码

编译OpenCV 4.8源码可以为你提供更高的灵活性和优化性能,适合特定的需求。以下是详细的步骤,指导你在Ubuntu系统上编译和安装OpenCV 4.8。 1. 安装必要的依赖 首先,确保你的系统已经安装了所有必要的依赖项。 sudo apt update sudo apt in…...

Arduino快速入门

Arduino快速入门指南 一、硬件准备 选择开发板: 推荐使用 Arduino UNO(兼容性强,适合初学者),其他常见型号包括NANO(体积小)、Mega(接口更多)。准备基础元件&#xff1a…...

基于WSL用MSVC编译ffmpeg7.1

在windows平台编译FFmpeg,网上的大部分资料都是推荐用msys2mingw进行编译。在win10平台,我们可以采用另一种方式,即wslmsvc 实现window平台的ffmpeg编译。 下面将以vs2022ubuntu22.04 为例,介绍此方法 0、前期准备 安装vs2022 &…...

java命令行打包class为jar并运行

1.创建无包名类: 2.添加依赖jackson 3.引用依赖包 4.命令编译class文件 生成命令: javac -d out -classpath lib/jackson-core-2.13.3.jar:lib/jackson-annotations-2.13.3.jar:lib/jackson-databind-2.13.3.jar src/UdpServer.java 编译生成class文件如下 <...

vue注册用户使用v-model实现数据双向绑定

定义数据模型 Login.vue //定义数据模型 const registerData ref({username: ,password: ,confirmPassword: })使用 v-model 实现数据模型的key与注册表单中的元素之间的双向绑定 <!-- 注册表单 --><el-form ref"form" size"large" autocompl…...

Android学习之响应式编程

本篇基于DeepSeek 搜索结果修改。 一、响应式编程基础认知 1.1 为什么需要响应式编程&#xff1f; 在传统的Android开发中&#xff0c;我们经常会遇到以下痛点&#xff1a; // 传统方式处理数据变化 button.setOnClickListener {// 触发网络请求fetchDataFromNetwork { res…...

如何使用极狐GitLab 软件包仓库功能托管 helm chart?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 软件包库中的 Helm charts (BASIC ALL) WARNING:Helm chart 库正在开发中&#xff0c;由于功能有限&#xff0c;尚未准备好用…...

中国古代史4

东汉 公元25年&#xff0c;刘秀建立东汉&#xff0c;定都洛阳&#xff0c;史称光武中兴 白马寺&#xff1a;汉明帝时期建立&#xff0c;是佛教传入中国后兴建的第一座官办寺院&#xff0c;有中国佛教的“祖庭”和“释源”之称&#xff0c;距今1900多年历史 班超—西域都护—投…...

Nacos源码—8.Nacos升级gRPC分析六

大纲 7.服务端对服务实例进行健康检查 8.服务下线如何注销注册表和客户端等信息 9.事件驱动架构源码分析 一.处理ClientChangedEvent事件 也就是同步数据到集群节点&#xff1a; public class DistroClientDataProcessor extends SmartSubscriber implements DistroDataSt…...

基于Vue3.0的高德地图api教程005:实现绘制线并编辑功能

文章目录 6、绘制多段线6.1 绘制多段线6.1.1 开启绘制功能6.1.2 双击完成绘制6.1.3 保存到数据库6.2 修改多段线6.2.1 点击线,进入编辑模式6.2.2 编辑线6.3 完整代码6、绘制多段线 6.1 绘制多段线 6.1.1 开启绘制功能 实现代码: const changeSwitchDrawPolyline = ()=>…...

SpringBoot 自动装配原理 自定义一个 starter

目录 1、pom.xml 文件1.1、parent 模块1.1.1、资源文件1.1.1.1、resources 标签说明1.1.1.2、从 Maven 视角&#xff1a;资源处理全流程​ 1.1.2、插件 1.2、dependencies 模块 2、启动器3、主程序3.1、SpringBootApplication 注解3.2、SpringBootConfiguration 注解3.2.1、Con…...

【C++进阶篇】多态

深入探索C多态&#xff1a;静态与动态绑定的奥秘 一. 多态1.1 定义1.2 多态定义及实现1.2.1 多态构成条件1.2.1.1 实现多态两个必要条件1.2.1.2 虚函数1.2.1.3 虚函数的重写/覆盖1.2.1.4 协变1.2.1.5 析构函数重写1.2.1.6 override和final关键字1.2.1.7 重载/重写/隐藏的对⽐ 1…...

Redis 基础详解:从入门到精通

在当今互联网应用开发领域&#xff0c;数据存储与处理的性能和效率至关重要。Redis&#xff08;Remote Dictionary Server&#xff09;作为一款开源的、基于内存的键值存储系统&#xff0c;凭借其出色的性能和丰富的功能&#xff0c;被广泛应用于数据库、缓存、消息中间件等场景…...

Android Studio的jks文件

在 Android Studio 中&#xff0c;.jks 文件是 Java KeyStore&#xff08;Java 密钥库&#xff09;文件的一种&#xff0c;用于存储和管理用于签署 Android 应用程序的数字证书和私钥。 一、.jks 文件的作用 在 Android 开发中&#xff0c;.jks 文件主要用于&#xff1a; 应用…...

互联网大厂Java面试实战:从Spring Boot到微服务的技术问答与解析

&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通 &#x1f601; 2. 毕业设计专栏&#xff0c;毕业季咱们不慌忙&#xff0c;几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…...

《AI大模型应知应会100篇》第60篇:Pinecone 与 Milvus,向量数据库在大模型应用中的作用

第60篇&#xff1a;Pinecone与Milvus&#xff0c;向量数据库在大模型应用中的作用 摘要 本文将系统比较Pinecone与Milvus两大主流向量数据库的技术特点、性能表现和应用场景&#xff0c;提供详细的接入代码和最佳实践&#xff0c;帮助开发者为大模型应用选择并优化向量存储解…...

HDFS客户端操作

一、命令行工具操作 HDFS 命令行工具基于 hdfs dfs 命令&#xff0c;语法类似 Linux 文件操作。 1. 文件操作 bash # 创建目录 hdfs dfs -mkdir /test# 递归创建多级目录 hdfs dfs -mkdir -p /test/data/logs# 上传本地文件到 HDFS hdfs dfs -put local_file.txt /test/# 从…...

MySQL--视图详解

介绍 视图&#xff08;View&#xff09;是一种虚拟存在的表。视图中的数据并不在数据库中实际存在&#xff0c;行和列数据来自定义视图的查询中使用的表&#xff08;称为基表&#xff09;&#xff0c;并且是在使用视图时动态生成的。 简而言之&#xff1a;视图只保存了查询的…...

Java学习手册:客户端负载均衡

一、客户端负载均衡的概念 客户端负载均衡是指在客户端应用程序中&#xff0c;根据一定的算法和策略&#xff0c;将请求分发到多个服务实例上。与服务端负载均衡不同&#xff0c;客户端负载均衡不需要通过专门的负载均衡设备或服务&#xff0c;而是直接在客户端进行请求的分发…...

Docker私有仓库实战:官方registry镜像实战应用

抱歉抱歉&#xff0c;离职后反而更忙了&#xff0c;拖了好久&#xff0c;从4月拖到现在&#xff0c;在学习企业级方案Harbor之前&#xff0c;我们先学习下官方方案registry&#xff0c;话不多说&#xff0c;详情见下文。 注意&#xff1a;下文省略了基本认证 TLS加密&#xff…...

LeetCode 373 查找和最小的 K 对数字题解

LeetCode 373 查找和最小的 K 对数字题解 题目描述 给定两个以升序排列的整数数组 nums1 和 nums2&#xff0c;以及一个整数 k。定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2。请找到和最小的 k 个数对。 解题思路 最小堆优化法…...

WebSocket集成方案对比

​ WebSocket集成方案对比与实战 架构选型全景图 #mermaid-svg-BEuyOkkoP6cFygI0 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BEuyOkkoP6cFygI0 .error-icon{fill:#552222;}#mermaid-svg-BEuyOkkoP6cFygI0 .er…...

深入理解 Istio v1.25.2

要深入理解 Istio 的最新版本&#xff08;截至 2025 年 5 月&#xff0c;最新版本为 1.25.2&#xff0c;发布Iweb:1⁊&#xff09;源码&#xff0c;我们可以通过分析其核心组件和代码结构来加深对 Istio 的理解。以下是对 Istio 源码的解读&#xff0c;结合其架构和功能&#x…...

使用conda导致无法找到libpython动态库

最近在用 AFL 的时候编译完成后遇到如下的报错&#xff1a; afl-fuzz: error while loading shared libraries: libpython3.9.so.1.0: cannot open shared object file: No such file or directory然后发现是因为编译时用的Python环境是通过miniconda构建的虚拟环境&#xff0…...