Harbor镜像仓库迁移与高可用集群搭建HTTPS实现实战指南
实验环境
Ubuntu22.04操作系统
registry节点 10.0.0.91
master节点 10.0.0.92
backup节点 10.0.0.93
在企业信息化建设的不同演进阶段,私有镜像仓库的选型策略存在显著差异。近期主导完成某企业级容器镜像仓库升级项目,成功实现Docker Registry至Harbor企业级镜像仓库的平滑迁移。本次技术实践采用基于Harbor的高可用架构设计,同时构建跨数据中心的镜像同步机制,现就架构方案与实施要点进行技术复盘。本文重点剖析Harbor的集群化部署方案、多副本数据一致性保障策略,以及跨云环境镜像同步的最佳实践。
Registry与Harbor功能矩阵对比图
功能模块 | Docker Registry | Harbor |
---|---|---|
权限控制 | 基础HTTP认证 | RBAC角色体系、项目级权限 |
漏洞扫描 | 不支持 | 集成Trivy/Clair、CVE数据库 |
镜像同步 | 需第三方工具 | 多策略跨集群复制 |
高可用架构 | 依赖外部存储 | 内置PostgreSQL集群、Redis哨兵 |
存储后端 | 本地/对象存储 | 支持S3/OSS/NFS/Ceph |
操作审计 | 无 | 完整操作日志记录与追溯 |
Helm Chart管理 | 不支持 | 独立Chart仓库服务 |
镜像签名 | 需手动配置 | Notary服务集成 |
GC机制 | 手动触发 | 策略化自动回收+空间监控 |
通过Harbor的企业级镜像治理能力,企业可构建从开发环境到生产环境的可信镜像流水线,将镜像安全管控节点左移,实现漏洞早发现、风险早阻断。在大规模迁移场景中,合理运用Harbor的智能化GC与分布式复制能力,可使PB级仓库迁移效率提升300%以上,为云原生转型提供坚实基础设施保障。
一、Registry镜像仓库迁移至Harbor
1. 查看现有Registry镜像列表
通过API接口获取当前Registry仓库中的所有镜像:
curl http://10.0.0.91:5000/v2/_catalog
2. Harbor仓库复制配置
登录Harbor管理界面
-
创建目标项目
进入"项目" → "新建项目",输入项目名称(如
library
),选择公开或私有。
-
配置复制规则
导航至"复制管理" → "新建复制规则":
- 名称:registry-migration
- 复制模式:Push(从Registry推送至Harbor )
- 源仓库:选择
Registry
类型,填写地址http://10.0.0.91:5000
- 目标项目:选择刚创建的项目(如
library
) - 触发模式:选择"手动触发"(首次迁移建议手动)
-
执行镜像同步
在复制规则列表中找到新建规则,点击"执行"按钮启动迁移。任务状态可在"任务日志"中查看。
二、Harbor高可用集群部署
1. 双节点Harbor部署
以10.0.0.92(主)和10.0.0.93(备)为例
配置文件呈现
[root@elk93 ~]# vim /usr/local/harbor/harbor.yml
...
hostname: 10.0.0.93
...
## https related config
#https:
# # https port for harbor, default is 443
# port: 443
# # The path of cert and key files for nginx
# certificate: /your/certificate/path
# private_key: /your/private/key/path
# # enable strong ssl ciphers (default: false)
# # strong_ssl_ciphers: false...
harbor_admin_password: 1
...
data_volume: /data/harbor
...本文简单修改了四处配置文件,并且将HTTPS给注释掉,因为我在测试环境还原了步骤,没有证书了。。。。
# 在两节点执行以下操作
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
tar zxf harbor-offline-installer-v2.7.0.tgz -C /usr/local/
cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml # 修改hostname和端口配置
./install.sh # 启动Harbor
Keepalived实现VIP漂移
# 两个节点安装keepalived服务apt install -y keepalived
主备节点配置差异点:
主节点(10.0.0.92)配置
# 修改配置文件
92节点的master
[root@elk92 ~]# cat /etc/keepalived/keepalived.conf
# /etc/keepalived/keepalived.conf(主节点:10.0.0.92)
global_defs {router_id 10.0.0.92 # 必须唯一,建议用本机IP
}vrrp_script chk_nginx {script "killall -0 nginx" # 检查Nginx进程是否存在interval 2 # 每隔2秒检查一次weight -20 # 检查失败时,优先级降低20
}vrrp_instance VI_1 {state MASTER # 主节点角色interface ens33 # 网卡名称(需根据实际网卡名修改)virtual_router_id 251 # 虚拟路由ID(主从必须一致)priority 100 # 初始优先级(必须高于从节点)advert_int 1 # 主备同步检查间隔(秒)mcast_src_ip 10.0.0.92 # 本机IP(必须为本机真实IP)# 注释或删除 nopreempt 以启用抢占模式# nopreempt # 主节点恢复后会自动抢回VIPauthentication {auth_type PASS # 认证类型auth_pass yinzhengjie # 密码(主从必须一致)}track_script {chk_nginx # 绑定健康检查脚本}virtual_ipaddress {10.0.0.66 # 虚拟IP(VIP)}
}
备节点(10.0.0.93)配置:
93节点的backup
[root@elk93 /usr/local/harbor]# cat /etc/keepalived/keepalived.conf
# /etc/keepalived/keepalived.conf(从节点:10.0.0.93)
global_defs {router_id 10.0.0.93 # 必须唯一,建议用本机IP
}vrrp_script chk_nginx {script "killall -0 nginx"interval 2weight -20
}vrrp_instance VI_1 {state BACKUP # 从节点角色interface ens33virtual_router_id 251 # 必须与主节点一致priority 90 # 初始优先级低于主节点advert_int 1mcast_src_ip 10.0.0.93 # 本机IP(必须为本机真实IP)authentication {auth_type PASSauth_pass yinzhengjie}track_script {chk_nginx}virtual_ipaddress {10.0.0.66}
}访问测试:
http://10.0.0.66现在的VIP就在93上面,我们实现VIP漂移
[root@elk93 ~]# systemctl stop keepalived.service
再次刷新
现在可以看到harbor的节点变成了92节点的信息
3. Nginx反向代理配置
在独立节点(如10.0.0.91)部署:
upstream harbor_cluster {server 10.0.0.66:80;
}server {listen 80;server_name harbor.yourdomain.com;location / {proxy_pass http://harbor_cluster;proxy_set_header Host $host;}
}
访问测试,这里只需要在Windows的hosts解析一下即可,模拟一下域名。
4. 最终架构验证
- 访问测试:
http://harbor.yourdomain.com
- VIP漂移测试:
再次测试keepalived
[root@elk92 ~]# systemctl stop keepalived.service
[root@elk92 ~]# ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:ca:88:8d brd ff:ff:ff:ff:ff:ffaltname enp2s1inet 10.0.0.92/24 brd 10.0.0.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feca:888d/64 scope link valid_lft forever preferred_lft forever
[root@elk92 ~]# 这时候已经漂移到93节点
[root@elk93 ~]# ip a |grep ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000inet 10.0.0.93/24 brd 10.0.0.255 scope global ens33inet 10.0.0.66/32 scope global ens33
再次刷新页面
可以发现数据已经变回了93节点的
三、主从harbor镜像数量同步一致
这时候我们的高可用架构已经搭建完成了,我们只需要同步一下两个harbor的镜像仓库的镜像数量就可以了
等待一分钟,成功即可
四、实现HTTPS证书安全访问
Harbor私有镜像仓库HTTPS深度配置指南:自签名证书与权威CA双实战
引言
在容器化技术普及的今天,Harbor作为企业级私有镜像仓库,其安全传输机制尤为重要。本文深入讲解两种HTTPS配置方案:基于自签证书的快速部署方案与生产级权威CA证书方案,助您构建安全的容器镜像管理体系。
方案选型指南
特性 | 自签证书方案 | 权威CA证书方案 |
---|---|---|
适用场景 | 测试/内部环境 | 生产环境 |
证书信任 | 需手动配置客户端信任 | 浏览器/Docker自动信任 |
安全性 | 基础安全 | 企业级安全 |
维护成本 | 低(无需购买) | 中(需续费管理) |
部署复杂度 | 简单 | 中等 |
自签名证书实战方案
1. 基础环境构建
# 传输安装包到目标主机
scp harbor-offline-installer-v2.12.2.tgz oldboyedu-autoinstall-docker-docker-compose.tar.gz 10.0.0.250:~# 安装Docker生态
tar xf oldboyedu-autoinstall-docker-docker-compose.tar.gz
./install-docker.sh i
tar xf harbor-offline-installer-v2.12.2.tgz -C /usr/local/
2. CA证书链构建
# 生成CA根证书(有效期10年)
openssl genrsa -out ca/ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=oldboyedu.com" \-key ca/ca.key \-out ca/ca.crt# 生成服务端证书(含SAN扩展)
openssl genrsa -out harbor-server/harbor250.key 4096
openssl req -sha512 -new -subj "/.../CN=harbor250.oldboyedu.com" -key harbor-server/harbor250.key -out harbor-server/harbor250.csrcat > harbor-server/v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = DNS:harbor250.oldboyedu.com
EOFopenssl x509 -req -sha512 -days 3650 -extfile harbor-server/v3.ext \-CA ca/ca.crt -CAkey ca/ca.key -CAcreateserial \-in harbor-server/harbor250.csr \-out harbor-server/harbor250.crt
3. Harbor服务配置
# harbor.yml核心配置
hostname: harbor250.oldboyedu.com
https:certificate: /usr/local/harbor/certs/harbor-server/harbor250.crtprivate_key: /usr/local/harbor/certs/harbor-server/harbor250.key
harbor_admin_password: StrongPassword@2024
data_volume: /data/harbor # 建议挂载独立存储卷
4. 客户端信任配置
# 分发CA根证书
mkdir -p /etc/docker/certs.d/harbor250.oldboyedu.com/
scp harbor250:/usr/local/harbor/certs/ca/ca.crt /etc/docker/certs.d/harbor250.oldboyedu.com/# 验证登录
docker login -u admin -p StrongPassword@2024 harbor250.oldboyedu.com
权威CA证书生产方案
1. 证书准备流程
- 在云平台(Let's Encrypt/付费CA)申请域名证书
- 获取证书包(通常包含
domain_bundle.crt
和domain.key
)
2. 证书部署规范
# 证书存放规范
/usr/local/harbor/
└── harbor.yinzhengjie.com_nginx/├── harbor.yinzhengjie.com_bundle.crt # 证书链文件└── harbor.yinzhengjie.com.key # 私钥文件
3. 关键配置项
# harbor.yml HTTPS配置段
https:certificate: /usr/local/harbor/harbor.yinzhengjie.com_nginx/harbor.yinzhengjie.com_bundle.crtprivate_key: /usr/local/harbor/harbor.yinzhengjie.com_nginx/harbor.yinzhengjie.com.key
4. 服务重载命令
# 完整更新流程
./prepare --with-trivy --with-chartmuseum # 按需添加组件
./install.sh --with-notary --with-trivy # 组合安装参数
深度运维技巧
1. 证书管理规范
- 权限控制:
chmod 600 *.key
- 定期巡检:建立证书到期提醒机制
- 更新策略:
# 证书热更新流程 mv new_cert.crt /usr/local/harbor/certs/harbor-server/ docker-compose -f /usr/local/harbor/docker-compose.yml down docker-compose -f /usr/local/harbor/docker-compose.yml up -d
2. 跨平台客户端配置
Windows Docker Desktop:
- 将CA证书导入"受信任的根证书颁发机构"
- 重启Docker服务
Kubernetes集群配置:
# 在containerd配置中添加信任
[plugins."io.containerd.grpc.v1.cri".registry][plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."harbor250.oldboyedu.com".tls]ca_file = "/etc/containerd/certs.d/harbor250/ca.crt"
故障排查矩阵
故障现象 | 排查方向 | 解决命令/方法 |
---|---|---|
x509: certificate signed by ... | 1. 检查客户端证书路径 2. 验证证书链完整性 | openssl verify -CAfile ca.crt server.crt |
503 Service Unavailable | 1. 检查docker-compose状态 2. 查看端口冲突 | docker-compose ps netstat -tlnp |
登录成功但推送失败 | 1. 项目权限检查 2. 存储空间检查 | df -h Harbor控制台审计日志 |
结语
通过本文两种HTTPS配置方案的对比实施,开发者可根据实际环境需求灵活选择。建议开发测试环境采用自签证书快速搭建,生产环境务必使用权威CA证书并建立完善的证书生命周期管理体系。定期检查Harbor官方安全公告,保持服务更新至最新稳定版本。
延伸阅读:
- Harbor官方HTTPS最佳实践
- Let's Encrypt免费证书申请指南
- 企业级证书管理方案Keycloak集成实践
五、生产环境注意事项
-
存储一致性
建议使用共享存储(如NFS/CEPH)挂载/data
目录,确保双节点数据一致。 -
数据库高可用
Harbor默认使用本地PostgreSQL,生产环境建议改用外部MySQL集群。 -
证书配置
为Harbor和Nginx配置HTTPS证书,提升安全性:# 在Harbor节点生成证书 openssl req -x509 -newkey rsa:4096 -nodes -days 365 \-keyout /etc/nginx/ssl/harbor.key \-out /etc/nginx/ssl/harbor.crt
-
监控告警
集成Prometheus监控关键指标:- 容器健康状态
- 镜像同步延迟
- 存储空间使用率
附录:Harbor复制触发模式详解
模式 | 适用场景 | 配置建议 |
---|---|---|
手动触发 | 数据初始化、临时同步 | 结合脚本批量操作 |
定时触发 | 跨地域定期备份 | Cron表达式设置非峰值时段 |
事件触发 | 生产环境实时同步 | 限制并发防止任务堆积 |
失败重试 | 网络抖动后的数据修复 | 设置最大重试次数(建议3-5次) |
通过本文方案,可实现企业级镜像仓库的无缝迁移与高可用保障,支撑容器化业务的稳定运行。
相关文章:
Harbor镜像仓库迁移与高可用集群搭建HTTPS实现实战指南
实验环境 Ubuntu22.04操作系统 registry节点 10.0.0.91 master节点 10.0.0.92 backup节点 10.0.0.93 在企业信息化建设的不同演进阶段,私有镜像仓库的选型策略存在显著差异。近期主导完成某企业级容器镜像仓库升级项目,成功实现Docker Registry至Ha…...
redis--JavaSpring客户端
目录 一、引言 二、配置 三、相关操作 四、总结 一、引言 本篇文章会将redis与spring项目进行结合,看看再spring项目中,redis是如何使用的 二、配置 三、相关操作 四、总结 在spring项目中的使用和在基础项目上的使用有差异,但是差异并不大…...
JavaWeb3
聚合函数:把某一列的数据计算。count,max,min,avg,sum select count(id) from wife;-- 统计个数,不计算null,统计常量表示个数 select count(*) from wife; select min(id) from wife; select avg(age) from wife; 分组查询 select name,c…...
SAP-ABAP:SAP数据集成全场景技术指南(BAPI、RFC、IDOC、BATCHJOB、ODATA、WEBSERVICE):从实时交互到批量处理
SAP数据集成全场景技术指南:从实时交互到批量处理 #mermaid-svg-hpPMerJYUerla0BJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-hpPMerJYUerla0BJ .error-icon{fill:#552222;}#mermaid-svg-hpPMerJYUerla0BJ .er…...
QT笔记----QCheckBox
文章目录 概要1、QCheckBox 的基本概念2、单个QCheckBox3、多个QCheckBox同时应用3.1、实现效果3.2、实现Demo 概要 在 Qt 应用程序开发中,QCheckBox 是一个常用的用户界面元素,它允许用户在两种状态(选中和未选中)之间进行切换&a…...
试试智能体工作流,自动化搞定运维故障排查
APO 1.5.0版本全新推出的智能体工作流功能,让运维经验不再零散!只需将日常的运维操作和故障排查经验转化为标准化流程,就能一键复用,效率翻倍,从此告别重复劳动,把时间留给更有价值的创新工作。更贴心的是&…...
3.24[Q]Linux
我正在学习Linux,Linux设备管理是怎样的?详细解释,越细节越好 我正在学习Linux,在Linux设备管理中,什么是char device?以及block,usb device?详细解释,越细节越好 我正在学习Linux࿰…...
深度学习——图像相似度评价指标
这里写目录标题 PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)定义公式代码 SSIMMS-SSIM (Multi Scale Structural Similarity Index Measure,多尺度结构相似性)CSS (Contrast-Structure Similarity 对比结构相似度)MA…...
CentOS安装sshpass工具-自动化SSH密码认证
sshpass是一个在Linux环境下用于自动化SSH密码认证的工具。 一、功能特点 自动化SSH登录:sshpass允许用户在命令行中直接传递密码,从而无需在SSH连接时手动输入密码。这对于自动化脚本和批处理任务非常有用,因为它可以在非交互式环境下完成…...
js 中 如何获取数组的交集【面试题】
一、数组元素为基本类型:Number、String、等基本类型时 1、使用 Set 和 filter(适用于两个数组) const intersection (arr1, arr2) > {const set new Set(arr2);return [...new Set(arr1)].filter(item > set.has(item)); };将第二…...
value-key 的作用
在 el-autocomplete 组件中,value-key 是一个非常重要的属性,它用于指定选项对象中作为值的字段名。当选项列表是一个包含多个属性的对象数组时,value-key 能帮助组件明确哪个属性是实际要使用的值。比如,选项列表为 [{id: 01, na…...
Spring MVC:从历史演变到实战入门
1. Java Web的发展历史与MVC模式 1.1 Model I与Model II的演进 Model I(JSPJavaBean) 作为早期Java Web开发的主流模式,其核心架构如下: graph LR A[客户端] --> B[JSP页面] B --> C{业务逻辑} C --> D[JavaBean] D -…...
Matlab设置表table的表头
用到matlab的table很好用。经常涉及放入数据,读取数据,下面总结常用的知识点。 1. 把不同数据类型放到同一个表中 想把时间类型和数值类型放到统一table中。困扰的点是,我已经知道了表头名称, 如何批量的为表头命名,…...
预测蓝桥杯16届嵌入式省赛客观题
以下是15道蓝桥杯嵌入式省赛客观题预测,每道题均包含**选项列表**、**答案**和**解析**,格式清晰便于快速查阅: 一、预测1 ### **一、STM32G4硬件基础与外设配置** 1. **STM32G431RBT6的Flash和RAM容量分别为?** **选项**&a…...
综合章节:游戏网络化、模组化与深度扩展
模块一:网络功能与玩家数据同步 目标:实现玩家得分上传、全球排行榜展示及云端数据同步。 # network_manager.py(网络请求封装) import requests import threadingclass NetworkManager:def __init__(self, base_url"http:…...
PostgreSQL:索引与查询优化
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
Android Compose 框架的 ViewModel 委托深入剖析(二十)
Android Compose 框架的 ViewModel 委托深入剖析 一、引言 在 Android 开发中,数据的管理和状态的保存是至关重要的。ViewModel 作为 Android 架构组件的一部分,为我们提供了一种在配置更改(如屏幕旋转)时保存数据和管理 UI 状态…...
android|生成二维码qrcode(android)
1.build.gradle implementation com.google.zxing:core:3.4.1引入zxing库 只是生成的话引入core库就可以了 2.封装方法 import android.graphics.Bitmap; import android.graphics.Color;import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; imp…...
element-plus中el-empty空盒子组件和Collapse 折叠面板组件的使用
一.el-empty空盒子组件的使用 直接复制下面的代码: <el-empty description"description" /> 展示效果: 还可以自定义文字描述: <el-empty description"暂未选择患者"/> 二.Collapse 折叠面板组件的使用 复制…...
Windows 和 Linux 操作系统架构对比以及交叉编译
操作系统与架构兼容性详解 1. 可执行文件格式:PE vs ELF Windows: PE (Portable Executable) 格式 详细解释: PE 格式是 Windows 下的可执行文件标准 包含多个区段(Sections),如代码段、数据段、资源段 文件头包含…...
【区块链安全 | 第一篇】密码学原理
文章目录 1.哈希函数1.1 哈希函数的性质1.2 常见哈希算法1.3 Merkle Tree(默克尔树)1.4 HMAC(哈希消息认证码) 2. 公钥密码学2.1 对称加密 vs 非对称加密2.2 RSA 算法2.3 ECC(椭圆曲线密码学)2.4 Diffie-He…...
3.23[A]linux
gedit 是 GNOME 桌面环境下的文本编辑器,类似于 Windows 中的记事本,但功能更强大,支持语法高亮、多文件编辑等特性。它是一个图形化界面的文本编辑器,适合在需要直观编辑文本文件的场景中使用。 gedit 通常用于编辑配置文件、源代…...
AI革命之下的前端将会如何发展?
一、AI 为前端开发带来的变革 (一)提升开发效率 传统的 Web 前端开发常常面临大量重复性工作,如编写简单表单、布局组件等,这些工作耗时费力且易出错,严重影响开发效率和项目进度。而 AI 的出现,通过自动…...
【2025】基于springboot+vue的农产品商城系统设计与实现(源码、万字文档、图文修改、调试答疑)
项目完整功能以演示视频为准 基于Spring Boot Vue的农产品商城系统设计与实现功能结构图如下: 课题背景 随着互联网的普及和电子商务的快速发展,农产品线上销售成为推动农业现代化和乡村振兴的重要力量。传统的农产品销售模式存在信息不对称、销售渠道单…...
沪深300股指期货的看涨看跌方式是怎样的?
沪深300指数代表了中国A股市场中300家大公司的整体表现。股指期货交易允许老板们预测指数未来的涨跌,并从中获利。 沪深300股指期货基础操作 首先,沪深300股指期货中的看涨操作:老板们可以通过买入沪深300股指期货合约,代码也就是…...
使用selenium来获取数据集
使用selenium来获取数据集 1、下载最新的chrome浏览器与chromedriver.exe 查看chrome的版本,打开谷歌浏览器,点击右上角的三个点,然后点击【帮助】, 点击【关于Google Chrome】 然后去下载同样为134版本号的chromedriver.exe, 网址:https://googlechromelabs.github.…...
MCP(大模型上下文协议)
以下是关于大模型MCP协议(Model Context Protocol)的详细介绍,综合其定义、技术架构、应用场景及行业影响: 一、定义与核心目标 **MCP(Model Context Protocol,模型上下文协议)**是由Anthropic…...
FPGA中串行执行方式之流水线(Pipeline)
FPGA中串行执行方式之流水线(Pipeline) 在FPGA设计中,流水线(Pipeline) 是一种常见的优化技术,用于提高系统的吞吐量和性能。流水线通过将复杂的逻辑分解为多个阶段,每个阶段在一个时钟周期内完成一部分工作,并将中间结果传递到下一阶段。这种方式可以显著提高时钟…...
Python 3.8 Requests 爬虫教程(2025最新版)
遵守网站的爬虫规则、避免爬取敏感信息、保护个人隐私! 一、环境配置与基础验证 # 验证 Python 版本(需 ≥3.8) import sys print(sys.version) # 应输出类似 3.8.12 的信息# 安装 requests 库(若未安装) # 命令行执…...
【深度学习】GAN生成对抗网络:原理、应用与发展
GAN生成对抗网络:原理、应用与发展 文章目录 GAN生成对抗网络:原理、应用与发展1. 引言2. GAN的基本原理2.1 核心思想2.2 数学表达2.3 训练过程 3. GAN的主要变体3.1 DCGAN (Deep Convolutional GAN)3.2 CGAN (Conditional GAN)3.3 CycleGAN3.4 StyleGAN…...
LINUX基础 [三] - 进程创建
目录 前言 进程创建的初次了解(创建进程的原理) 什么是fork函数? 初识fork函数 写时拷贝 fork函数存在的意义 fork调用失败的原因 进程终止 运行完毕结果不正确 main函数返回 库函数函数exit 系统调用接口_exit 进程异常终止 进…...
AI比人脑更强,因为被植入思维模型【24】替身决策思维模型
定义 替身决策思维模型是一种在面对复杂问题或决策情境时,通过将自己代入到不同的角色(即“替身”)中,从这些角色的视角出发去思考、分析和做出决策的思维方式。这种思维模型要求决策者暂时摆脱自身固有的思维定式和立场…...
数据清洗:基于python抽取jsonl文件数据字段
基于python抽取目录下所有“jsonl”格式文件。遍历文件内某个字段进行抽取并合并。 import os import json import time from tqdm import tqdm # 需要先安装:pip install tqdmdef process_files():# 设置目录路径dir_path r"D:\daku\关键词识别\1623-00000…...
spring后端处理各种请求
在Spring MVC中处理JSON请求和返回JSON消息的步骤如下: 1. 添加依赖 确保项目中包含处理JSON的库,如Jackson。 Maven配置(pom.xml): <dependency><groupId>com.fasterxml.jackson.core</groupId>…...
企业级部署zabbix分布式监控系统
目录 一、Zabbix分布式监控系统介绍 1.什么是“Zabbix” 2.Zabbix分布式监控系统的特点 3.Zabbix分布式监控系统的原理 4.Zabbix分布式监控系统的运用 5. Zabbix分布式监控系统的部署顺序 二、搭建 1.设备硬件配置参考 2.zabbix分布式监控系统各节点设备名称和IP规划 …...
OkHttp 的证书设置
在 Android 开发中,通过 OkHttp 自定义 SSLSocketFactory 和 X509TrustManager 可以有效增强 HTTPS 通信的安全性,防止中间人攻击(如抓包工具 Charles/Fiddler 的拦截)。以下是实现防抓包的关键技术方案: 一、Okhttp设…...
ETL:数据清洗、规范化和聚合的重要性
在当今这个数据呈爆炸式增长的时代,数据已成为企业最为宝贵的资产之一。然而,数据的海量增长也伴随着诸多问题,如数据来源多样、结构复杂以及质量问题等,这些问题严重阻碍了数据的有效处理与深度分析。在此背景下,ETL&…...
蓝桥杯备考:图的遍历
这道题乍一看好像没什么不对的,但是!但是!结点最大可以到10的5次方!!!我们递归的时间复杂度是很高的,我们正常遍历是肯定通过不了的,不信的话我们试一下 #include <iostream>…...
【多媒体交互】Unity Kinect实现UI控件的点击
在Unity中,通过Kinect实现UI控件的点击功能,主要涉及手部追踪、坐标映射和手势检测三个核心环节。 实现步骤 初始化Kinect与关节追踪 使用KinectManager获取用户ID和手部关节点(如JointType.HandLeft)的坐标。 long userId _…...
QinQ项展 VLAN 空间
随着以太网技术在网络中的大量部署,利用 VLAN 对用户进行隔离和标识受到很大限制。因为 IEEE802.1Q 中定义的 VLAN Tag 域只有 12 个比特,仅能表示 4096 个 VLAN,无法满足城域以太网中标识大量用户的需求,于是 QinQ 技术应运而生。…...
OBS虚拟背景深度解析:无需绿幕也能打造专业教学视频(附插件对比)
想要录制教学视频却苦于背景杂乱?本文将手把手教你用OBS实现专业级虚拟背景效果,无需绿幕也能轻松营造沉浸式教学场景。文末附6个提升画面质感的免费背景资源! 一、虚拟背景的核心价值:从「教师宿舍」到「虚拟讲堂」的蜕变 我们调…...
26考研——图(6)
408答疑 文章目录 一、图的基本概念二、图的存储三、图的遍历四、图的应用五、图的代码实操六、参考资料鲍鱼科技课件26王道考研书 七、总结图的存储结构邻接矩阵邻接表 图的遍历图的相关概念完全图和连通图图的连通性 关键路径学习建议 一、图的基本概念 文章链接: link 二、…...
Redis常用数据类型深度解析:从理论到最佳实践
Redis常用数据类型深度解析:从理论到最佳实践 一、引言二、Redis数据类型全景图三、核心数据类型详解**1. String(字符串)****2. Hash(哈希表)****3. List(列表)****4. Set(集合&…...
DeepSeek-V3 模型更新,加量不加价
DeepSeek V3-0324 是 DeepSeek V3 系列的重要升级版本,虽然被官方称为「小版本迭代」,但其在技术能力、开源策略和用户体验上均有显著提升。以下是主要新特性功能和核心变化: 推理能力 基准测试性能显著提升: MMLU-Pro࿱…...
Vue项目的 Sass 全局基础样式格式化方案,包含常见元素的样式重置
步骤 1:创建全局样式文件 在项目中创建文件:src/assets/scss/global.scss 内容如下: // 全局盒模型设定(边框计入宽高) *, *::before, *::after {box-sizing: border-box;margin: 0;padding: 0; }// 基础元素样式重置…...
【Spring篇】Spring的生命周期
一、Bean 生命周期的核心阶段 1. 实例化(Instantiation) • 触发时机:容器启动时(单例 Bean)或请求时(原型 Bean)。 • 实现方式: 通过反射(Class.newInstance() 或构造…...
Qt中通过QLabel实时显示图像
Qt中的QLabel控件用于显示文本或图像,不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示: Widgets_Test.h: class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…...
[数据结构]1.时间复杂度和空间复杂度
这里写目录标题 1. 算法复杂度2. 时间复杂度2.1 执行次数2.2 大O渐进表示法2.3 常见时间复杂度计算eg1eg2eg3eg4eg5eg6eg7eg8eg9 3. 空间复杂度eg1eg2eg3eg4 4. 常见复杂度对比5. 复杂度练习eg1 1. 算法复杂度 衡量一个算法的好坏,一般是从时间空间两个维度来衡量&…...
【每日算法】Day 6-1:哈希表从入门到实战——高频算法题(C++实现)
摘要 :掌握高频数据结构!今日深入解析哈希表的核心原理与设计实现,结合冲突解决策略与大厂高频真题,彻底掌握O(1)时间复杂度的数据访问技术。 一、哈希表核心思想 哈希表(Hash Table) 是一种基于键值对的…...
物联网平台架构介绍
物联网是连接物理设备、传感器、软件等的网络系统,使设备能够自动收集、交换和处理数据,实现智能化识别、定位、跟踪、监控和管理。随着物联网技术的飞速发展,物联网平台架构的设计变得至关重要,它决定了物联网系统的性能、可扩展…...