Spark on 存算分离架构:性能优化全攻略
Spark on 存算分离架构性能优化全攻略关键词Spark、存算分离、性能优化、对象存储、云原生摘要随着云原生技术的普及存算分离架构计算与存储独立扩展已成为企业大数据处理的主流选择。但 Spark 在存算分离环境中常面临网络延迟高、数据本地化差、元数据瓶颈等问题。本文将从核心概念出发结合生活类比、技术原理、代码实战与场景案例系统讲解 Spark 在存算分离架构下的性能优化策略帮助你彻底解决“算得慢、成本高”的痛点。背景介绍目的和范围本文面向使用 Spark 处理海量数据的开发者、架构师重点解决存算分离场景下的 Spark 性能问题。覆盖从概念理解到具体优化网络、元数据、缓存、任务调度的全链路方法包含代码示例与实战案例。预期读者对 Spark 有基础了解但在存算分离环境中遇到性能瓶颈的开发者负责大数据平台架构设计的工程师希望降低云成本、提升资源利用率的技术管理者。文档结构概述本文从“存算分离 vs 存算一体”的对比入手用故事引出核心问题通过生活类比解释存算分离的挑战结合技术原理如数据本地化、元数据访问与数学模型延迟/带宽公式分析瓶颈最后通过代码实战配置调优、缓存策略与场景案例电商大促、日志分析给出落地方案。术语表核心术语定义存算分离计算资源如 Spark 集群与存储资源如 AWS S3、阿里云 OSS独立部署通过网络交互。数据本地化计算任务尽可能在数据所在的节点执行存算一体时天然满足存算分离时需优化。元数据描述数据的数据如文件路径、大小、分区信息类似“数据的说明书”。对象存储存算分离中常用的存储类型如 S3以“桶Bucket 对象Object”形式存储无目录结构逻辑目录通过键名模拟。缩略词列表S3Simple Storage Service亚马逊对象存储OSSObject Storage Service阿里云对象存储RDDResilient Distributed DatasetSpark 核心数据结构核心概念与联系故事引入小明的“厨房与冰箱”难题小明是某电商公司的大数据工程师。过去公司用“存算一体”的服务器每台服务器既有 CPU/内存计算又有本地硬盘存储。就像“厨房计算和冰箱存储在同一个房间”做饭计算时拿食材数据特别快。但随着数据量激增每天新增 100TB 用户行为日志问题来了要扩容就得买整台服务器计算存储一起买成本飙升周末流量低时服务器闲置计算资源浪费但硬盘还得花钱租。于是公司切换到“存算分离”架构计算用弹性云服务器需要时扩容不用时释放存储用云对象存储按实际用量付费。这就像“厨房计算在自己家冰箱存储搬到了小区公共仓库”——更灵活、更省钱但每次做饭计算都得“跑公共仓库拿食材数据”结果发现“做饭速度变慢了”小明的任务是如何让“厨房”即使去“公共仓库”拿食材也能像以前一样快核心概念解释像给小学生讲故事一样核心概念一存算分离架构存算分离就像“小区公共仓库”模式存储层专门放“食材”数据的公共仓库如 S3、OSS容量大、按用量付费支持弹性扩展计算层专门“做饭”处理数据的厨房如 Spark 集群需要时临时借几个“厨房”弹性扩容用完就还。关键特点存储和计算“分开租房”各自按需扩容但“拿食材”数据传输需要走小区道路网络。核心概念二Spark 计算层的“数据本地化”Spark 就像一个“做饭团队”团队里有很多“厨师”Executor 进程。为了效率Spark 希望每个“厨师”能在自己身边拿到“食材”数据这叫“数据本地化”。存算一体时“食材”数据就在“厨师”Executor所在的服务器硬盘里伸手就能拿本地化等级最高叫 PROCESS_LOCAL存算分离时“食材”在“公共仓库”对象存储“厨师”得通过“小区道路”网络去拿可能要等很久本地化等级降低叫 NODE_LOCAL 或 OFF_SWITCH。核心概念三对象存储的“元数据瓶颈”对象存储如 S3的“元数据”就像“公共仓库的登记本”记录每个“食材”对象放在哪个货架、有多大、什么时候放的。存算一体时“登记本”元数据在本地硬盘查起来很快存算分离时“登记本”存在远程服务器每次查“食材位置”都要“跑过去问”网络请求。如果 Spark 要处理 10000 个小文件就需要查 10000 次“登记本”这会慢得像“排队买奶茶”核心概念之间的关系用小学生能理解的比喻存算分离 vs 数据本地化就像“厨房”和“冰箱”分开后“厨师”拿“食材”必须跑远路导致“做饭”变慢。要解决这个问题得想办法让“食材”离“厨房”近一点比如临时搬一部分到“厨房”附近的小冰箱——缓存。对象存储 vs 元数据瓶颈“公共仓库”的“登记本”元数据如果查得太慢即使“食材”本身传输快“厨师”也会因为“查位置”等很久。需要优化“查登记本”的方式比如批量查、减少查询次数。Spark 计算层 vs 存算分离架构Spark 原本设计是为存算一体优化的现在要适应存算分离需要调整“任务调度策略”比如让“厨师”集中去“仓库”拿“食材”、“数据读取方式”比如合并小文件等。核心概念原理和架构的文本示意图存算分离架构下 Spark 执行流程 对象存储S3/OSS → 网络 → Spark 驱动节点解析元数据 → 网络 → Spark Executor读取数据、计算Mermaid 流程图网络请求发送任务发送任务网络读取数据网络读取数据对象存储Spark 驱动节点解析元数据Spark Executor 1Spark Executor 2计算结果核心算法原理 具体操作步骤Spark 在存算分离下的性能瓶颈主要来自数据读取延迟和元数据访问开销。我们需要从这两个方向优化。一、数据读取延迟优化让“拿食材”更快原理数据读取时间公式数据读取总时间 数据量 / 网络带宽 网络延迟 × 请求次数比如读取 1GB 数据带宽 100MB/s延迟 100ms总时间 (1024MB / 100MB/s) 100ms 10.24s 0.1s 10.34s要减少总时间需要提升带宽增加并行读取连接数减少延迟降低请求次数减少数据量只读取需要的列/分区。具体操作增加并行读取连接数Spark 通过spark.hadoop.fs.s3a.connection.maximum以 S3 为例控制到存储的最大连接数。默认 100可根据集群规模调大如 500让多个 Executor 同时“抢”数据提升带宽利用率。// Spark 配置示例ScalavalsparkSparkSession.builder().config(spark.hadoop.fs.s3a.connection.maximum,500).config(spark.hadoop.fs.s3a.threads.max,500)// 并发线程数.getOrCreate()合并小文件减少请求次数对象存储对小文件如 1KB~1MB不友好每个文件需要一次网络请求元数据查询次数爆炸。可以用 Spark 合并小文件为大文件如 Parquet 格式单文件 128MB~1GB。-- Spark SQL 合并小文件示例INSERTOVERWRITETABLEbig_dataSELECT*FROMsmall_files OPTIONS(paths3://bucket/big_data,mergeSchematrue)列裁剪与分区过滤只读取需要的列通过SELECT col1, col2和分区通过WHERE dt2023-10-01减少数据传输量。Spark SQL 会自动优化谓词下推但需确保表是分区表PARTITIONED BY (dt STRING)。二、元数据瓶颈优化让“查登记本”更快原理元数据访问次数公式元数据访问次数 文件数 × 元数据操作类型如 LIST、HEAD比如处理 10000 个小文件每个文件需要一次 LIST列目录和一次 HEAD查文件大小总次数是 20000 次每次延迟 100ms总耗时 20000 × 0.1s 2000s33 分钟具体操作减少文件数合并小文件同上合并后文件数从 10000 减少到 100元数据访问次数减少 100 倍。优化元数据并行发现Spark 读取目录时默认单线程遍历子目录如s3://bucket/dt2023-10-01下的所有文件。可通过spark.sql.sources.parallelPartitionDiscovery.parallelism增加并行度同时查多个子目录的元数据。spark.conf.set(spark.sql.sources.parallelPartitionDiscovery.parallelism,100)// 默认 32使用元数据缓存对于固定分区如按天分区的日志表可以缓存元数据如分区列表、文件大小避免重复查询。Spark 3.2 支持spark.sql.sources.partitionMetadataCacheSize配置缓存大小。spark.conf.set(spark.sql.sources.partitionMetadataCacheSize,10000)// 缓存 10000 个分区元数据三、数据本地化优化让“食材”离“厨师”更近原理Spark 的本地化等级Spark 任务调度时会优先将任务分配到“数据所在节点”存算一体时。存算分离时数据在对象存储本地化等级只能是 NODE_LOCAL数据在节点的本地缓存或 OFF_SWITCH数据在远程存储。要提升本地化等级需要将高频数据缓存到计算节点附近如 Alluxio 缓存层。具体操作使用 Alluxio 作为缓存层Alluxio 是一款开源的分布式缓存系统可将对象存储中的高频数据缓存到计算节点的本地磁盘/内存让 Spark 读取时达到 NODE_LOCAL 甚至 PROCESS_LOCAL 等级。架构示意图Spark Executor → Alluxio本地缓存 → 对象存储回源部署步骤安装 Alluxio 集群配置底层存储为 S3/OSSSpark 读取路径改为alluxio://cache-cluster:19998/bucket/path配置 Alluxio 缓存策略如 LRU保留最近 100GB 数据。Spark 内存缓存Cache Table对高频查询的小表如用户维度表10GB 以内用spark.sql.cacheTable(table_name)缓存到 Spark Executor 的内存避免重复读取对象存储。spark.sql(CACHE TABLE user_dim)// 缓存到内存spark.sql(SELECT * FROM user_dim JOIN order_fact ON user_id).show()// 后续查询直接读内存数学模型和公式 详细讲解 举例说明数据读取时间模型T r e a d S B N × L T_{read} \frac{S}{B} N \times LTread​BS​N×L其中( T_{read} )数据读取总时间秒( S )数据量MB( B )网络带宽MB/s( N )网络请求次数( L )单次请求延迟秒。举例读取 1000 个小文件每个 1MB总 1000MB带宽 100MB/s延迟 0.1s不合并文件( T_{read} 1000/100 1000 \times 0.1 10 100 110s )合并为 1 个大文件1000MB( T_{read} 1000/100 1 \times 0.1 10 0.1 10.1s )。结论合并小文件可将读取时间从 110s 缩短到 10.1s提升 10 倍项目实战代码实际案例和详细解释说明开发环境搭建云存储开通阿里云 OSS或 AWS S3创建 bucketspark-optimization上传测试数据小文件和合并后的大文件。Spark 集群使用 EMR阿里云弹性 MapReduce或 AWS EMR配置 3 台节点1 主 2 从每台 8C16G系统盘 100GB数据盘 500GB。Alluxio 缓存在 EMR 集群中安装 Alluxio 组件配置底层存储为 OSS缓存目录为节点本地数据盘。源代码详细实现和代码解读案例 1合并小文件优化importorg.apache.spark.sql.SparkSessionobjectMergeSmallFiles{defmain(args:Array[String]):Unit{valsparkSparkSession.builder().appName(Merge Small Files).config(spark.hadoop.fs.oss.endpoint,oss-cn-hangzhou.aliyuncs.com)// OSS 端点.config(spark.hadoop.fs.oss.accessKeyId,your-access-key).config(spark.hadoop.fs.oss.accessKeySecret,your-secret-key).getOrCreate()// 读取小文件假设路径为 oss://spark-optimization/small_files/valsmallFilesDFspark.read.parquet(oss://spark-optimization/small_files/)// 合并为大文件单文件 512MB输出到 oss://spark-optimization/big_files/smallFilesDF.repartition(2)// 2 个分区 → 2 个大文件假设总数据量 1GB.write.option(compression,snappy)// 压缩提升存储效率.parquet(oss://spark-optimization/big_files/)spark.stop()}}代码解读repartition(2)强制将数据分成 2 个分区生成 2 个大文件每个约 512MBoption(compression, snappy)使用 Snappy 压缩压缩率适中解压快减少存储量和网络传输量。案例 2使用 Alluxio 缓存加速读取objectAlluxioCache{defmain(args:Array[String]):Unit{valsparkSparkSession.builder().appName(Alluxio Cache).config(spark.hadoop.fs.alluxio.impl,alluxio.hadoop.FileSystem).config(alluxio.master.hostname,emr-header-1)// Alluxio 主节点.config(alluxio.master.port,19998).getOrCreate()// 读取路径改为 Alluxio 缓存路径alluxio:// 开头valcachedDFspark.read.parquet(alluxio://emr-header-1:19998/spark-optimization/big_files/)// 执行计算如聚合cachedDF.groupBy(user_id).agg(count(*).as(order_count)).show()spark.stop()}}代码解读spark.hadoop.fs.alluxio.impl指定 Alluxio 作为文件系统实现读取路径alluxio://...Spark 会优先从 Alluxio 缓存读取数据未命中时回源到 OSS。代码解读与分析合并小文件通过减少文件数降低元数据查询次数和网络请求次数显著提升读取速度Alluxio 缓存将高频数据缓存到计算节点附近使数据本地化等级从 OFF_SWITCH远程存储提升到 NODE_LOCAL本地缓存读取延迟降低 90% 以上。实际应用场景场景 1电商大促期间用户行为分析某电商在双 11 期间需要实时分析用户点击、加购、下单数据每天 50TB存储在 OSS。优化前Spark 任务因小文件多每小时生成 10000 个 CSV 文件元数据查询耗时 30 分钟总任务耗时 2 小时优化后合并小文件为 Parquet单文件 1GB元数据查询耗时降至 1 分钟使用 Alluxio 缓存高频分区近 7 天数据数据读取时间从 1.5 小时降至 10 分钟总任务耗时缩短至 15 分钟支撑实时大屏展示。场景 2日志分析千万级日志文件某视频公司每天生成 1000 万条日志每个用户行为一条 JSON 文件总 10TB。优化前Spark 读取时需遍历 1000 万文件元数据查询超时任务失败优化后用 Spark 按小时合并日志为 Parquet每小时 1 个文件共 24 个文件/天配置spark.sql.sources.parallelPartitionDiscovery.parallelism100并行发现分区任务成功率从 30% 提升到 100%执行时间从“经常超时”变为 20 分钟完成。工具和资源推荐存储层工具云对象存储AWS S3、阿里云 OSS、华为云 OBS支持标准/低频/归档存储按需选择成本最优类型缓存层Alluxio开源、Tencent Cloud Cache for HDFS腾讯云托管、阿里云 JuiceFS云原生文件系统。监控工具Spark UI查看任务阶段Stage的执行时间、数据读取量、Shuffle 量Prometheus Grafana监控网络带宽node_network_transmit_bytes、对象存储 QPSoss_request_count云存储控制台查看存储请求延迟如 OSS 的“请求次数”“平均响应时间”。调优工具Spark 配置指南Spark Configuration官方文档必看Alluxio 最佳实践Alluxio Documentation缓存策略配置小文件合并工具Hadoopcombine工具、Sparkrepartition/coalesce方法。未来发展趋势与挑战趋势 1Serverless Spark 与存算分离深度融合云厂商如 AWS、阿里云正在推广 Serverless Spark无需管理集群按任务用量付费。存算分离架构下Serverless Spark 可自动扩缩计算资源结合对象存储的弹性进一步降低成本。趋势 2智能缓存与 AI 调优未来Spark 可能内置 AI 模型根据历史数据访问模式如哪些表/分区被频繁查询自动决策缓存策略如缓存哪些数据、缓存到内存还是磁盘无需人工配置。挑战 1跨区域网络延迟如果计算集群和存储位于不同可用区如杭州和上海网络延迟可能从 1ms 增加到 50ms显著影响读取时间。解决方案使用多可用区存储如 AWS S3 的多区域访问点或就近部署计算集群。挑战 2对象存储的最终一致性部分对象存储如 S3对“删除/覆盖文件”采用最终一致性更新可能延迟几秒到几分钟可见。Spark 任务如果在更新后立即读取可能读到旧数据。解决方案使用版本控制s3:Versioning或等待一致性通过时间戳校验。总结学到了什么核心概念回顾存算分离计算与存储独立灵活扩缩但需优化网络和元数据数据本地化Spark 任务希望数据离 Executor 越近越好存算分离时需缓存元数据瓶颈对象存储的“登记本”查询慢需合并小文件、并行查询。概念关系回顾存算分离带来数据读取延迟和元数据瓶颈需要通过合并小文件、增加并行连接、缓存数据等方式优化Spark 的调度策略如本地化等级需适应存算分离结合外部缓存层Alluxio提升性能。思考题动动小脑筋如果你负责一个每天生成 10 万小文件每个 100KB的日志系统如何设计 Spark 任务将其合并为大文件需要考虑哪些参数如分区数、压缩格式在存算分离架构下如果网络带宽突然下降如从 100MB/s 降到 20MB/s你会优先调整哪些 Spark 配置参数来保证任务完成为什么假设你需要缓存 1TB 高频数据到计算节点但每个节点只有 500GB 磁盘如何设计缓存策略如哪些数据优先缓存附录常见问题与解答Q存算分离下Spark 的 Shuffle 性能如何优化AShuffle 是 Spark 任务的核心瓶颈数据从 Executor A 传输到 Executor B。存算分离下Shuffle 数据如果存储在对象存储会因网络延迟变慢。优化方法将 Shuffle 数据存储到计算节点的本地磁盘spark.shuffle.service.enabledtrue使用外部 Shuffle Service减少 Shuffle 数据量通过coalesce减少分区数或使用spark.sql.shuffle.partitions调整分区数。Q对象存储的“最终一致性”对 Spark 任务有什么影响A如果 Spark 任务在删除/覆盖文件后立即读取可能读到旧数据如删除dt2023-10-01的文件后立即查询该分区仍能看到文件。解决方案等待一致性如延迟 5 分钟再执行任务使用版本控制读取时指定版本号用“标记文件”如_SUCCESS标识分区完成Spark 只读取有_SUCCESS的分区。扩展阅读 参考资料Spark 官方文档ConfigurationAlluxio 最佳实践Caching StrategiesAWS 存算分离白皮书Optimizing Spark on EMR with S3阿里云 OSS 与 Spark 集成指南

相关新闻

深度学习篇---Transformer架构中的Encoder

深度学习篇---Transformer架构中的Encoder

编码器是 Transformer 架构中负责理解输入序列的核心部分,它的输出为解码器提供了丰富的语义表示。下面我将从设计目标开始,深入解析编码器的每个组成部分。一、编码器的设计目标编码器的根本任务是:将输入的序列(如一个句子&…

2026/5/17 6:21:00 阅读更多 →
深度学习篇---Transformer解剖

深度学习篇---Transformer解剖

Transformer 架构自 2017 年在论文《Attention Is All You Need》中提出以来,彻底改变了自然语言处理等领域。下面我将从设计思想开始,逐步解析其核心组件,并在最后给出总结框图。一、核心设计思想:摆脱时序,并行计算在…

2026/5/17 6:21:00 阅读更多 →
ROS 2 Jazzy 规范开发与学习指南

ROS 2 Jazzy 规范开发与学习指南

从零开始,掌握 ROS 2 现代机器人开发的最佳实践 📋 目录 为什么选择 ROS 2 Jazzy环境准备标准开发流程常见错误及解决方案最佳实践学习路线推荐资源汇总 为什么选择 ROS 2 Jazzy 📅 版本对比 特性 Humble (2022) Jazzy (2024) 支持周期 …

2026/7/5 22:46:59 阅读更多 →

最新新闻

嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

1. 项目背景与核心需求在嵌入式系统开发中,电源管理一直是个关键挑战。随着现代MCU和外设的复杂度提升,单一电压轨已经无法满足需求。我最近在为一个工业传感器项目设计供电方案时,就遇到了需要同时提供1.8V、3.3V和5V三种电压的棘手情况。传…

2026/7/6 22:25:18 阅读更多 →
海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视SDK V6.1.4.7 Java二次开发:SpringBoot集成3大核心功能实战指南在智能安防领域,海康威视设备占据着重要市场份额。本文将带您从零开始构建一个基于SpringBoot的企业级视频监控管理系统,实现设备实时预览、录像回放和云台控制三大核心…

2026/7/6 22:25:18 阅读更多 →
如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到音乐歌词而烦恼吗?163MusicLyrics是一…

2026/7/6 22:21:04 阅读更多 →
直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

1. 项目背景与核心器件选型 在工业自动化和消费电子领域,直流电机驱动系统的效率优化一直是工程师面临的关键挑战。TC78H660FTG作为东芝新一代H桥驱动器,与Microchip的PIC18F87J11微控制器组合,为解决这一问题提供了创新方案。 1.1 TC78H66…

2026/7/6 22:19:03 阅读更多 →
Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

1. 项目概述:一次真实的Flink安全加固实战最近在梳理线上数据平台的资产时,安全扫描工具突然弹出一个高危告警:Apache Flink Web Dashboard存在未授权访问漏洞。这个告警让我心头一紧,因为这意味着任何能访问到Flink Web UI地址的…

2026/7/6 22:15:01 阅读更多 →
基于Playwright与飞书API构建电商数据自动化采集与同步系统

基于Playwright与飞书API构建电商数据自动化采集与同步系统

1. 项目概述:当飞书多维表格遇上Playwright自动化最近在帮一个做电商的朋友解决一个头疼事:他每天要手动去几个不同的电商平台后台,把各个商品的销量、库存、评价数抄下来,再填到飞书多维表格里做数据分析。这事儿听着就累&#x…

2026/7/6 22:15:01 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻