010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全
文章目录
- 1 OSS
- 1.1 什么是 OSS 存储?
- 1.2 OSS 核心功能
- 1.3 OSS 的优势
- 1.4 典型使用场景
- 1.5 如何接入 OSS?
- 1.6 注意事项
- 1.7 cloudreve实战演示
- 1.7.1 配置cloudreve连接阿里云oss
- 1.7.2 常见错误
- 1.7.3 安全测试影响
- 2 反向代理
- 2.1 正向代理和反向代理
- 2.2 演示
- 2.3 安全测试影响
- 3 负载均衡
- 3.1 负载均衡的核心作用
- 3.2 常见负载均衡算法
- 3.3 负载均衡的实现层级
- 3.4 典型负载均衡方案
- 3.5 关键实践要点
- 3.6 应用场景示例
- 3.7 常见挑战与解决
- 3.8 演示
- 结语
1 OSS
OSS(对象存储服务)介绍
以阿里云 OSS(Object Storage Service)为例
1.1 什么是 OSS 存储?
OSS(Object Storage Service)是对象存储服务,由云服务商(如阿里云、AWS S3、腾讯云 COS 等)提供的一种海量、安全、低成本的云存储服务。
- 核心特点:
- 对象存储:数据以对象(Object)形式存储,每个对象包含数据本身、元数据和唯一标识符(Key)。
- 无限扩展:支持海量数据存储,理论上容量无上限。
- 高可用性:数据跨多设备、多机房冗余存储,保障 99.9999999999%(12 个 9)的持久性。
- 低成本:按实际使用量付费(存储量、流量、请求次数等),无前期硬件投入。
1.2 OSS 核心功能
- 数据存储与管理
- 支持文本、图片、音视频、日志等任意类型文件存储。
- 提供文件夹(目录)模拟功能,可通过
Key
(如images/2023/photo.jpg
)管理文件层级。
- 访问与控制
- 权限管理:支持私有读写、公共读、自定义权限(如通过 STS 临时令牌授权)。
- 访问方式:
- API/SDK:通过 RESTful API 或各类语言(Python/Java/Go 等)的 SDK 接入。
- 控制台:通过网页管理文件。
- 工具:OSS Browser、ossutil 等客户端工具。
- 数据处理
- 图片处理:缩放、裁剪、水印、格式转换等。
- 视频处理:转码、截图、水印等。
- 数据加速:结合 CDN 实现全球加速访问。
- 数据安全
- 加密存储:支持服务器端加密(SSE)、客户端加密。
- 日志与监控:记录访问日志,监控存储桶(Bucket)流量、请求次数等。
- 版本控制:防止文件误删或覆盖,支持历史版本恢复。
1.3 OSS 的优势
场景 | 传统存储(如硬盘/NAS) | OSS 存储 |
---|---|---|
扩展性 | 受硬件限制,扩容复杂 | 按需自动扩展,无需手动管理 |
可靠性 | 依赖单设备,易丢失数据 | 多副本冗余,跨机房容灾 |
成本 | 前期硬件投入高 | 按使用量付费,无前期成本 |
访问速度 | 本地网络延迟低 | 结合 CDN 可全球加速 |
适用场景 | 小规模、高频读写场景 | 海量数据、低频率访问场景 |
1.4 典型使用场景
- 静态资源托管
- 网站图片、CSS/JS 文件、视频等静态资源存储,结合 CDN 加速访问。
- 大数据分析
- 存储海量日志、传感器数据,供 Hadoop/Spark 等大数据框架直接分析。
- 备份与归档
- 冷数据(如数据库备份、监控录像)存储,支持低频访问存储(IA)和归档存储类型以降低成本。
- 云原生应用
- 容器化应用、Serverless 函数(如 AWS Lambda)的持久化存储方案。
1.5 如何接入 OSS?
以阿里云 OSS 为例:
-
创建存储桶(Bucket)
- 登录阿里云控制台,选择地域(Region)和存储桶名称(全局唯一)。
- 设置存储类型(标准/低频/归档)、权限(如私有读写)。
-
上传/下载文件
- 通过 API/SDK 或控制台上传文件,生成访问链接(需配置权限)。
# Python SDK 示例(上传文件) from oss2 import Auth, Bucket auth = Auth('<AccessKey>', '<SecretKey>') bucket = Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'my-bucket') bucket.put_object('example.txt', 'Hello OSS!')
-
管理文件生命周期
- 配置自动删除过期文件、转换存储类型等规则。
1.6 注意事项
- 费用优化:根据访问频率选择合适的存储类型(标准/低频/归档)。
- 流量控制:外网下载可能产生流量费用,建议结合 CDN 或内网传输。
- 版本控制:开启版本控制避免误删文件。
- 安全性:避免使用公开读写权限,推荐通过临时令牌(STS)授权访问。
1.7 cloudreve实战演示
- 原理:内容分发
- 影响:
- 演示:软件地址见下面链接1
- 环境:window server + cloudreve + 阿里云oss
1.7.1 配置cloudreve连接阿里云oss
第一步:启动应用,如下图所示,
第三步:阿里云oss新建bucket,配置AccessKey、SecretKey,如果已配置过,跳过该步骤继续第三步
第二步:管理面板配置OSS存储策略,如下图所示,
第四步:上传文件测试,成功长传如图所示,
1.7.2 常见错误
阿里云OSS回调错误(203: error status:301.)
- 临时解决方案:阿里云ecs服务器安全组临时添加允许所有来源所有类型的请求
1.7.3 安全测试影响
上传的文件或解析的文件均来自于oss资源,无法解析
- 修复上传安全
- 文件解析不一样
- 存在AccessKey隐患
2 反向代理
2.1 正向代理和反向代理
对比维度 | 正向代理 (Forward Proxy) | 反向代理 (Reverse Proxy) |
---|---|---|
定义 | 代理客户端向外部服务器发送请求,隐藏客户端身份。 | 代理服务器接收客户端请求,隐藏后端服务器身份。 |
位置 | 部署在客户端侧(如企业内网、用户设备)。 | 部署在服务端侧(如数据中心、云服务器)。 |
作用方向 | 客户端主动配置代理,代理代表客户端访问目标服务。 | 客户端无感知,代理直接接收请求并转发给后端服务。 |
隐藏对象 | 隐藏客户端的真实 IP 或身份。 | 隐藏后端服务器的真实 IP 或架构细节。 |
主要用途 | - 突破网络限制(如访问被屏蔽的网站) - 匿名访问 - 客户端缓存加速 | - 负载均衡 - 安全防护(如防 DDoS) - 服务端缓存加速 - SSL 终端卸载 |
典型场景 | - 企业内网用户通过代理访问外网 - VPN 或科学上网工具 | - 网站使用 Nginx 反向代理分发请求 - CDN 节点代理源站 |
配置方 | 由客户端主动配置(浏览器或系统设置)。 | 由服务器管理员配置,客户端无感知。 |
加密与安全 | 可能用于加密客户端到代理的通信(如 HTTPS)。 | 通常用于加密客户端到代理的通信,并保护后端服务器。 |
常见工具 | Squid、Shadowsocks、VPN | Nginx、HAProxy、Cloudflare、Traefik |
核心区别总结
- 作用方向
- 正向代理:客户端主动通过代理访问外部资源(代理代表客户端)。
- 反向代理:服务端通过代理接收请求并分发(代理代表服务端)。
- 隐藏对象
- 正向代理:隐藏客户端身份。
- 反向代理:隐藏服务端身份。
- 典型应用
- 正向代理:科学上网、内网访问外网。
- 反向代理:负载均衡、CDN、API 网关。
2.2 演示
演示环境:windows server + BT宝塔面板+nginx
配置反向代理地址如下图所示:
配置文件如下所示:
location /
{expires 12h;if ($request_uri ~* "(php|jsp|cgi|asp|aspx)"){expires 0;}proxy_pass https://www.baidu.com;proxy_set_header Host www.baidu.com;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header REMOTE-HOST $remote_addr;add_header X-Cache $upstream_cache_status;proxy_set_header Accept-Encoding "";sub_filter_once off;proxy_cache cache_one;proxy_cache_key $host$uri$is_args$args;proxy_cache_valid 200 304 301 302 12h;
}
效果如下图所示:
2.3 安全测试影响
影响:访问目标只是一个代理,非真实应用服务器
tips:正向代理和反向代理都是解决访问不可达的问题,但由于反向代理中多出一个可以重定向解析的功能操作,导致反向代理站点指向和真实应用没有关系。
3 负载均衡
负载均衡(Load Balancing)是一种将网络流量、计算任务或数据请求合理分配到多个服务器或资源的技术,旨在提高系统性能、可靠性和资源利用率。以下是负载均衡的核心概念和应用解析:
3.1 负载均衡的核心作用
- 流量分发
将用户请求均匀分配到多台服务器,避免单点过载。 - 高可用性
自动检测故障节点,将流量切换到健康服务器,保障服务连续性。 - 横向扩展
通过增加服务器实例应对高并发,提升系统吞吐量。 - 优化资源利用
根据服务器性能动态分配任务,避免资源浪费。
3.2 常见负载均衡算法
算法类型 | 原理 | 适用场景 |
---|---|---|
轮询(Round Robin) | 按顺序依次分配请求 | 服务器性能相近的无状态服务 |
加权轮询 | 根据服务器权重分配流量(权重=性能) | 服务器性能差异较大的场景 |
最少连接(Least Connections) | 优先分配给当前连接数最少的服务器 | 长连接场景(如数据库、WebSocket) |
IP哈希 | 根据客户端IP哈希值固定分配到某服务器 | 需要会话保持(Session粘滞) |
响应时间优先 | 选择响应最快的服务器 | 对延迟敏感的应用 |
3.3 负载均衡的实现层级
- 四层负载均衡(传输层,TCP/UDP)
- 基于IP和端口进行流量转发(如LVS、F5)。
- 高性能,适用于低延迟场景(如游戏、视频流)。
- 七层负载均衡(应用层,HTTP/HTTPS)
- 解析应用层协议,支持基于URL、Cookie的路由(如Nginx、HAProxy)。
- 功能强大,支持SSL终止、内容压缩、缓存等。
3.4 典型负载均衡方案
- 硬件负载均衡器
- 专用设备(如F5 BIG-IP、Citrix ADC),性能高但成本昂贵。
- 软件负载均衡器
- 开源工具(如Nginx、HAProxy、Envoy),灵活且易于扩展。
- 云服务负载均衡器
- AWS ALB/NLB、阿里云SLB、腾讯云CLB,集成自动扩缩容和健康检查。
- DNS负载均衡
- 通过DNS解析将域名映射到多个IP,简单但缺乏实时健康检测。
3.5 关键实践要点
- 健康检查(Health Check)
- 定期检测后端服务器状态(如HTTP状态码、端口连通性)。
- 会话保持(Session Persistence)
- 使用Cookie或IP哈希确保用户请求分配到同一服务器。
- 弹性伸缩(Auto Scaling)
- 结合云平台动态增减服务器实例(如AWS Auto Scaling + ALB)。
- 安全防护
- 在负载均衡层集成WAF、DDoS防护(如Cloudflare、阿里云盾)。
3.6 应用场景示例
- Web服务:通过Nginx将HTTP请求分发到多台Tomcat服务器。
- 微服务架构:Kubernetes使用Ingress Controller实现服务间流量调度。
- 数据库读写分离:将读请求分配到多个从库,写请求指向主库。
- 全球加速:使用CDN和地理负载均衡将用户导向最近的节点。
3.7 常见挑战与解决
- 单点故障:部署负载均衡器集群(如Keepalived实现主备切换)。
- 性能瓶颈:使用DPDK(数据平面开发套件)优化网络包处理。
- 复杂路由逻辑:七层负载均衡结合API网关(如Kong、Traefik)。
3.8 演示
基于web服务,这里通过nginx将http请求分发到多台服务器
环境:windows server + BT宝塔面板 + Nginx
影响:有多个服务器加载服务,测试过程中存在多个目标情况
nginx基础负载均衡
http {upstream backend_servers {# 定义后端服务器列表server 192.168.1.101:80;server 192.168.1.102:80;server 192.168.1.103:80;}server {listen 80;server_name example.com;location / {# 将请求代理到后端服务器组proxy_pass http://backend_servers;# 可选:设置代理头信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
}
结语
❓QQ:806797785
⭐️仓库地址:https://gitee.com/gaogzhen
⭐️仓库地址:https://github.com/gaogzhen
[1]cloudreve github地址[CP/OL].
[2]站长工具-ping检测[CP/OL].
相关文章:
010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全
文章目录 1 OSS1.1 什么是 OSS 存储?1.2 OSS 核心功能1.3 OSS 的优势1.4 典型使用场景1.5 如何接入 OSS?1.6 注意事项1.7 cloudreve实战演示1.7.1 配置cloudreve连接阿里云oss1.7.2 常见错误1.7.3 安全测试影响 2 反向代理2.1 正向代理和反向代理2.2 演示…...
PyQt 或 PySide6 进行 GUI 开发文档与教程
一、官网文档 Qt 官方文档:Porting to Qt 6 | Qt 6.9Qt 维基:Qt WikiQt for Python (PySide6) :Qt for Python - Qt WikiPySide6 快速上手指南:Getting Started - Qt for Python PyS…...
【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡
AMD / Xilinx Alveo™ V80计算加速器卡 AMD/Xilinx Alveo ™ V80计算加速器卡是一款功能强大的计算加速器,基于7nm Versal™ 自适应SoC架构而打造。 AMD/Xilinx Alveo V80卡设计用于内存密集型任务。 这些任务包括HPC、数据分析、网络安全、传感器处理、计算存储和…...
C++ 动态内存管理
operator new和operator delete函数是两个全局函数,编译器在编译new和delete时会调用这两个函数,其底层分别是封装malloc和free 1.new new 内置类型 内置类型没有构造函数,所以使用new就是调operator new函数开空间,如果要初始化…...
(11)Vue-Router路由的详细使用
本系列教程目录:Vue3Element Plus全套学习笔记-目录大纲 文章目录 第2章 路由 Vue-Router2.1 Vue路由快速入门2.1.1 创建项目2.1.2 路由运行流程 2.2 传递参数-useRoute2.2.1 路径参数-params1)普通传参2)传递多个参数3)对象方式传…...
RISCV的smstateen-ssstateen扩展
RISC-V 的 Smstateen / Ssstateen 扩展是为了解决安全性和资源隔离性问题而设计的,尤其是针对在多个上下文(如用户线程、多个虚拟机)之间 潜在的隐蔽信道(covert channel) 风险。 🌐 背景:隐蔽信道与上下文切换问题 当…...
C++ 与 Lua 联合编程
在软件开发的广阔天地里,不同编程语言各有所长。C 以其卓越的性能、强大的功能和对硬件的直接操控能力,在系统开发、游戏引擎、服务器等底层领域占据重要地位,但c编写的程序需要编译,这往往是一个耗时操作,特别对于大型…...
瑞萨 EZ-CUBE2 调试器
瑞萨 EZ-CUBE2 调试器 本文介绍了瑞萨 EZ-CUBE2 调试器的基本信息、调试方式、环境搭建、硬件连接、软件测试等。 包装展示 调试器展示 开关选项 详见:EZ-CUBE2 | Renesas 瑞萨电子 . 环境搭建 使用 Renesas 公司的 e2 studio 开发工具,下载 并安装该…...
MATLAB滤波工具箱演示——自定义维度、滤波方法的例程演示与绘图、数据输出
使用 M A T L A B MATLAB MATLAB的界面做了一个 M A T L A B MATLAB MATLAB滤波工具箱 d e m o demo demo,本文章给出演示:自定义维度、滤波方法的例程演示与绘图、数据输出 文章目录 编辑界面使用方法优势待改进点部分代码 编辑界面 使用 M A T L A B …...
数据库索引优化实战: 如何设计高效的数据库索引
数据库索引优化实战: 如何设计高效的数据库索引 一、理解数据库索引的核心原理 1.1 B树索引的结构特性 数据库索引(Database Index)的本质是通过特定数据结构加速数据检索。现代关系型数据库普遍采用B树(B Tree)作为默认索引结构&…...
TS 安装
TS较JS优势 1 TS静态类型编程语言。编译时发现错误 2 类型系统 强化变量类型概念 3 支持新语法 4 类型推断机制 可以和React框架中的各种hook配合 5 任何地方都有代码提示 tsc 命令 将TS转为JS 1 tsc 文件.ts 生成 js文件 2 执行JS代码...
CMake separate_arguments用法详解
separate_arguments 是 CMake 中用于将字符串分割成参数列表的命令,适用于处理包含空格的参数或复杂命令行参数。以下是其用法详解: 基本语法 separate_arguments(<variable> [UNIX|WINDOWS_COMMAND] [PROGRAM <program>] [ARGS <args&…...
【AI科技】AMD ROCm 6.4 新功能:突破性推理、即插即用容器和模块化部署,可在 AMD Instinct GPU 上实现可扩展 AI
AMD ROCm 6.4 新功能:突破性推理、即插即用容器和模块化部署,可在 AMD Instinct GPU 上实现可扩展 AI 现代 AI 工作负载的规模和复杂性不断增长,而人们对性能和部署便捷性的期望也日益提升。对于在 AMD Instinct™ GPU 上构建 AI 和 HPC 未来…...
2025年- H20-Lc128-240. 搜索二维矩阵 II(矩阵)---java版
1.题目描述 2.思路 遍历矩阵,然后如果遇到矩阵中的值正好等于target,输出true。否则,输出false。 3.代码 public class H240 {public boolean searchMatrix(int[][] matrix, int target) {//1.计算出总的行值,总的列值。int mm…...
LearningFlow:大语言模型城市驾驶的自动化策略学习工作流程
《LearningFlow: Automated Policy Learning Workflow for Urban Driving with Large Language Models》2025年1月发表,来自香港科技大学广州分校的论文。 强化学习(RL)的最新进展表明了自动驾驶的巨大潜力。尽管有这一前景,但奖励…...
C语言数据类型与内存布局
C语言数据类型内存占用 类型32位系统64位系统格式说明符char1字节1字节%cint4字节4字节%dfloat4字节4字节%fdouble8字节8字节%lflong long8字节8字节%lld...
从原理到实战讲解回归算法!!!
哈喽,大家好,我是我不是小upper, 今天系统梳理了线性回归的核心知识,从模型的基本原理、参数估计方法,到模型评估指标与实际应用场景,帮助大家深入理解这一经典的机器学习算法,助力数据分析与预测工作。 …...
linux指令中的竖线(“|”)是干啥的?【含实例展示】
文章目录 一、管道符的基本概念二、管道符的核心作用三、常用实例展示四、进阶技巧五、注意事项总结 实操展示**案例1:统计日志中特定错误的数量****案例2:查找当前运行的进程****案例3:合并排序并去重****案例4:实时监控CPU占用前…...
[HOT 100] 0124. 二叉树中的最大路径和
文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 124. 二叉树中的最大路径和 - 力扣(LeetCode) 2. 题目描述 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一…...
[SoC]AXI总线Performance验证方案
AXI总线Performance验证方案 测试 AXI (Advanced eXtensible Interface) 的性能是 SoC 验证中的重要任务,旨在评估其在不同负载和配置下的表现是否满足设计要求。以下详细说明如何测试 AXI 的性能、需要统计的变量、计算方法、在验证环境中动态计算性能的方法,以及如何…...
EMC PowerStore存储学习之一NVMe磁盘的命名规则
PowerStore的日志中经常会看到类似于/dev/nvme1n1的磁盘,在svc_diag list --show_drives中也可以看到类似这样的输出,如下图: 这里的Drives的显示都是 /dev/nvmeXnY的形式,那么这个磁盘命名规则怎么解读呢? 在Linux系…...
apt-mirror搭建ubuntu本地离线源
参考资料 4 Steps to Setup Local Repository in Ubuntu using APT-mirror 使用 APT-mirror 四步配置 Ubuntu 本地软件仓库 ubuntu下的apt-get内网本地源的搭建...
【记录】新Ubuntu20配置voxelmap的环境安装
因为系统总出问题,仅用于个人纪录。 1. 升级CMake到3.28及以上版本(Sophus依赖) wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.sh chmod x cmake-3.28.3-linux-x86_64.sh sudo ./cmake-3.2…...
Python全流程开发实战:基于IMAP协议安全下载个人Gmail邮箱内所有PDF附件
在日常办公场景中,面对成百上千封携带PDF附件的邮件,手动逐一下载往往耗时耗力,成为效率瓶颈。如何通过代码实现“一键批量下载”?本文将以**“Gmail全量PDF附件下载工具”**开发为例,完整拆解从需求分析到落地交付的P…...
CPU:AMD的线程撕裂者(Threadripper)和霄龙(EPYC)的区别
AMD的**线程撕裂者(Threadripper)和霄龙(EPYC)**虽然都是面向高性能市场的处理器,但它们在定位、功能和技术规格上有显著区别。以下是两者的主要差异: 1. 目标市场 线程撕裂者(Threadripper&…...
【五一培训】Day 2
注: 1. 本次培训内容的记录将以“Topic”的方式来呈现,用于记录个人对知识点的理解。 2. 由于培训期间,作者受限于一些现实条件,本文的排版及图片等相关优化,需要过一段时间才能完成。 3. 关于老板点评的一些思考 你…...
shell_plus
python manage.py shell_plus 是由 django-extensions 提供的一个增强版的 Django shell,它自动导入你的所有模型和其他一些便捷功能,使得交互式开发更加方便。 如果你遇到配置或运行问题,特别是与 RQ_SHOW_ADMIN_LINK 相关的 ImproperlyCon…...
基于C++、JsonCpp、Muduo库实现的分布式RPC通信框架
⭐️个人主页:小羊 ⭐️所属专栏:RPC框架 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 项目介绍JsonCpp库简单介绍Muduo库简单介绍C11异步操作——std::future1. 使用 std::async 关联异步任务2. std::packaged_task…...
Redis TLS 加密对性能的影响分析
Redis TLS 加密对性能的影响分析 是的,Redis 启用 TLS 加密确实会对性能产生一定影响,但影响程度取决于多种因素。以下是详细分析: 一、性能影响的主要来源 加密/解密开销: TLS 握手过程中的非对称加密(如 RSA、…...
树与二叉树完全解析:从基础到应用
目录 一、树形结构的基础认知 1.1 树的定义与特点 1.2 核心术语解析 二、二叉树的深度解析 2.1 二叉树定义 2.2 特殊二叉树类型 2.3 重要性质总结 三、二叉树的存储与遍历 3.1 存储方式对比 3.2 遍历算法精讲 四、经典题型训练 4.1 相同树判断(LeetCode…...
PostgreSQL:pgJDBC 下载和安装
PostgreSQL 的 pgJDBC 是用于 Java 程序连接和操作 PostgreSQL 数据库的 JDBC 驱动程序。 PostgreSQL:pgJDBC v42.7 下载和安装 点击【Application Stack Builder】 安装目录: 运行 cmd cd D:\PostgreSQL\pgJDBC copy postgresql-42.7.2.jar D:\groovy-…...
正则表达式与文本三剑客grep、sed、awk
目录 一、正则表达式 1.1、字符匹配 1.2、次数匹配 1.3、位置锚定 1.4、分组或其他 二、扩展正则表达式 三、grep 四、awk 4.1、常用命令选项 4.2、工作原理 4.3、基础用法 4.4、内置变量 4.5、模式 4.6、条件判断 4.7、awk中的循环语句 4.8、数组 4.9、脚本 …...
(35)VTK C++开发示例 ---将图片映射到平面2
文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 与上一个示例不同的是,使用vtkImageReader2Factory根据文件扩展名或内容自动创建对应的图像文件读取器&a…...
每日一题洛谷P8635 [蓝桥杯 2016 省 AB] 四平方和c++
P8635 [蓝桥杯 2016 省 AB] 四平方和 - 洛谷 (luogu.com.cn) 直接暴力枚举,不做任何优化的话最后会TLE一个,稍微优化一下就过了(数据给的还是太良心了) 优化:每层循环用if判断一下,如果大于n就直接跳 当然…...
【python】【UV】一篇文章学完新一代 Python 环境与包管理器使用指南
🐍 UV:新一代 Python 环境与包管理器使用指南 一、UV 是什么? UV 是由 Astral 团队开发的高性能 Python 环境管理器,旨在统一替代 pyenv、pip、venv、pip-tools、pipenv 等工具。 1.1 UV 的主要功能 🚀 极速包安装&…...
6.10.单源最短路径问题-Dijkstra算法
一.BFS算法的局限性: 如上图,BFS算法可以解决无权图的单源最短路径问题, 如果是解决带权图的单源最短路径问题,BFS算法就不适用了,如下图: 如上图,比如求G港到其他顶点的最短路径, …...
Python基于深度学习的网络舆情分析系统(附源码,部署)
大家好,我是Python徐师兄,一个有着7年大厂经验的程序员,也是一名热衷于分享干货的技术爱好者。平时我在 CSDN、掘金、华为云、阿里云和 InfoQ 等平台分享我的心得体会。 🍅文末获取源码联系🍅 2025年最全的计算机软件毕…...
mysql--索引
索引作为一种数据结构,其用途是用于提升检索数据的效率。 分类 普通索引(INDEX):索引列值可重复 唯一索引(UNIQUE):索引列值必须唯一,可以为NULL 主键索引(PRIMARY KEY&a…...
【算法题】荷兰国旗问题[力扣75题颜色分类] - JAVA
一、题目 二、文字解释 1.1 前言 本题是经典的「荷兰国旗问题」,由计算机科学家 Edsger W. Dijkstra 首先提出。如同图中所示的荷兰国旗,其由红、白、蓝三色水平排列组成。在算法领域,该问题可类比为将一个由特定的三种元素(可…...
【数据结构】堆的完整实现
堆的完整实现 堆的完整实现GitHub地址前言堆的核心功能实现重温堆的定义堆结构定义1. 堆初始化与销毁2. 元素交换函数3. 堆化操作向上调整(子→父)向下调整(父→子) 4. 堆元素插入5. 堆元素删除6. 辅助功能函数堆的判空获取堆顶元…...
软考 系统架构设计师系列知识点之杂项集萃(51)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(50) 第80题 设三个煤场A1、A2、A3分别能供应煤7、12、11万吨,三个工厂B1、B2、B3分别需要10、10、10万吨,从各煤场到各工厂运煤的单价(百元/吨&…...
patch命令在代码管理中的应用
patch 是一个用于将差异文件(补丁)应用到源代码的工具,常用于修复 bug、添加功能或调整代码结构。在您提供的代码中,patch 命令通过一系列补丁文件(.patch)修改了 open-amp 库的源代码。 patch 命令的核心作…...
Qt结构体运算符重载指南
在 Qt 中,结构体(struct)或类(class)中重载运算符是一种常见的做法,用于实现自定义类型的逻辑操作(如比较、算术运算等)。以下是一些常见的运算符重载示例和注意事项: 1.…...
基于bert预训练模型的垃圾短信分类系统
文章目录 任务介绍数据说明注意事项数据处理数据准备数据集划分数据集类构建模型构建与训练模型构建模型训练模型推理附录任务介绍 随着移动通信技术的飞速发展,短信(Short Message Service, SMS)已成为人们日常生活中不可或缺的沟通方式之一。然而,垃圾短信(Spam SMS)的…...
[Android] 网易爆米花TV 2.0.0.0429(原网易Filmly,支持多网盘的TV版、电脑版带海报墙播放器)
[Android] 网易爆米花 链接:https://pan.xunlei.com/s/VOPDuQS9D7qixvAnoy7-he2PA1?pwdhzvh# [Android] 网易爆米花TV 2.0.0.0429(原网易Filmly,支持多网盘的TV版、电脑版带海报墙播放器) 详细介绍直接上主页截图,…...
# 前后端分离象棋对战项目开发记录
1. **结构清晰**:使用更直观的标题、分段和列表,增强可读性。 2. **视觉美观**:添加Markdown格式化(如代码块、加粗、斜体),并建议配色和排版风格。 3. **内容精炼**:精简冗余表述,突…...
Android Framework学习二:Activity创建及View绘制流程
文章目录 Window绘制流程Window Manager Service(WMS)SurfaceSurfaceFlinger 安卓View层次结构ActivityPhoneWindowActivity与PhoneWindow两者之间的关系ViewRootImplDecorViewDecorView 的作用DecorView 的结构总结 Activity创建流程View invalidate调用…...
文章五《卷积神经网络(CNN)与图像处理》
文章5:卷积神经网络(CNN)与图像处理——让AI学会"看图说话" 引言:你的AI宠物如何认出猫狗? 想象你的手机突然有了"眼睛",不仅能识别照片里的猫狗,还能告诉你它们的品种&am…...
Ubuntu系统下Firefox浏览器完整指南:故障修复、国内版安装与下载加速
Ubuntu系统下Firefox浏览器完整指南:故障修复、国内版安装与下载加速 一、Firefox无法启动问题修复二、替换国际版安装国内版完整流程准备工作操作步骤验证要点 三、下载延迟问题解决方案现象分析优化配置步骤注意事项 四、进阶技巧补充五、常见问题FAQ 一、Firefox…...
【论文阅读一】掌握高效阅读法,开启学术研究新旅程:S. Keshav教授论文阅读的三遍法
文章目录 一、三遍阅读法1. 初读:10分钟:宏观把握,快速筛选2. 第二遍:1个小时:更仔细的阅读,了解文中论点3. 第三遍:深入理解,注重细节,挑战假设 二、运用三遍阅读法进行…...