【系统架构师】2025论文《WEB系统性能优化技术》

在这里插入图片描述

😊你好,我是小航,一个正在变秃、变强的文艺倾年。
🔔本文分享【系统架构师】2025论文《系统可靠性设计》,期待与你一同探索、学习、进步,一起卷起来叭!

目录

  • 项目介绍
    • 背景介绍
    • 系统模块
    • 技术栈
      • 性能优化技术
  • 摘要
  • 正文

项目介绍

背景介绍

  • 时间:2021年3月启动,2022年3月上线
  • 参与方:我单位与某省公安厅联合研发
  • 目标:解决数据全生命周期(存储/传输/使用/共享)安全问题
  • 核心价值:通过性能优化保障系统高并发处理能力
  • 用户群体:省市县三级公务员

系统模块

模块名称功能描述
资源模块数据源管理(Oracle/Flink/Spark/文件),支持数据接入、导出及脱敏任务调度
敏感属性模块自动发现敏感字段,支持自定义敏感属性与人工复核
脱敏规则模块策略组合配置(含算法版本控制),支持DES/AES/RSA/遮掩/移位等原子脱敏算法
脱敏模块执行可逆/不可逆脱敏,支持同步/异步任务处理
权限模块RBAC权限控制(省市县三级用户角色分级)
审计模块操作日志记录与合规审查

技术栈

  • 核心框架:Spring Cloud
  • 缓存中间件:Redis(LRU淘汰策略)
  • 数据库:Oracle/Neo4j/Spark + RAID6固态硬盘阵列

性能优化技术

2.1 负载均衡技术

技术组件实现方案效果
Nginx集群前置反向代理+路由模式隔离内外网支持1000+并发连接
最小连接算法动态分配请求至空闲节点提升资源利用率30%
故障转移自动隔离异常节点服务可用性达99.9%

2.2 缓存技术

  • 缓存策略
    • 数据类型:脱敏规则/用户登录信息/字典配置
    • 淘汰机制:LRU(最近最少使用)
    • 一致性保障:读时回填、写时淘汰
  • 性能提升
    • 数据库访问量减少60%
    • 页面加载时间缩短至200ms以内

2.3 数据库优化

优化措施技术实现性能指标
主从复制一主三从架构,读写分离写压力降低70%
RAID6阵列固态硬盘+双盘容错随机读写IOPS提升4倍
连接池管理封装读写分离连接池事务响应时间≤50ms

摘要

2021年3月,我单位联合某省公安厅研发《数据脱敏管理系统》。系统以数据脱敏功能为核心,分为资源模块、敏感属性模块、脱敏规则模块、脱敏模块、权限模块、审计模块。在项目中,我担任系统架构师职务,负责架构设计工作。

本文以该系统为例,主要论述了web技术性能优化在项目中的具体运用。着重介绍负载均衡技术、缓存技术以及数据库主从部署三种技术。通过负载均衡技术结合服务器集群,提高系统的并发能力;缓存技术基于redis内存数据库,降低系统数据库压力,提高数据脱敏速度;数据库主从部署实现读写分离,极大缓解了数据库的负载瓶颈。最终项目成功上线,获得用户一致好评。

正文

笔者在一个专为政企建设信息系统的集成商任职,过往成果有《某省厅网技综合平台》等。2021年3月,我单位联合某省厅研发了《数据脱敏管理系统》项目(以下简称“系统”),解决了数据在其生命周期的传输、存储、使用、共享环节的安全问题,保护了数据安全性和可用性。系统以数据脱敏功能为核心,主要分为资源模块、敏感属性模块、脱敏规则模块、脱敏模块、权限模块、审计模块等。资源模块主要负责识别和维护所有需要进行数据脱敏的数据源,支持用户根据需求接入和导出数据至不同数据源(如oracle、neo4j、spark源、文本文件等),并负责将抽取的数据发送到敏感属性模块进行属性分析;敏感属性模块负责自动发现数据中的敏感字段,支持用户自定义敏感属性等;脱敏规则模块根据不同敏感属性,灵活组合不同脱敏策略,并做好版本控制;数据脱敏模块按用户指定或预定义脱敏策略,对数据实施可逆、不可逆脱敏;权限模块主要是系统安全管理员定义不同角色对应不同模块的权限,对省市县三级用户实行权限控制;审计模块用于安全审计员对系统操作的监督核查。在这个项目中,我担任系统架构师的职务,主要负责系统的架构设计相关工作。

系统需要支撑省厅所辖公务员对数据的脱敏,为保证系统的性能和可靠性,对系统进行性能优化显得尤为重要。传统的基于单块架构的数据脱敏管理系统早已无法支撑日益增长的用户需求,存在严重的性能问题,且很难进行扩展,因此该系统在架构设计中必须考虑到Web应用系统性能优化技术的应用。常见的性能优化策略有:1.负载均衡技术。通过请求转发、监测异常实例、服务故障转移、自动隔离异常主机保障服务高可用性。通过添加实例至服务集群的方式,提高系统的可扩展性。通过负载均衡策略实现流量均衡;2.缓存技术。通过将读写比很高、很少变化的数据写入缓存中,能够起到减少数据访问时间和计算时间的作用,同时能够降低数据库访问压力;3.数据库主从部署技术。使用一主多从,实现读写分离,减轻主库访问压力,同时防止单一主机的数据丢失,提高数据安全性,还能让不同从库使用不同存储引擎,以适应不同的应用需求。

系统分为前端web服务、平台保障服务、业务服务,在开发过程中,我们运用了多种性能优化技术。这里重点以负载均衡技术、缓存技术、数据库主从部署为例,介绍本系统Web性能优化的方案和达到的效果。

  1. 负载均衡技术。前端web服务主要提供给用户可使用的界面,分为前置nginx负载均衡服务器、前端网站Nginx集群。当用户通过网络访问系统时,首先会访问到前置的Nginx负载均衡服务器,负载均衡服务器会将请求转发到前端网站的Nginx集群,前端网站通过发起http请求来和后端交互,具体是通过Ajax方式来调用后端REST API接口。用户访问网站通过前置的nginx负载均衡服务器来转发到前端网站集群,以起到将用户请求进行分流的作用。当前端网站集群中的部分服务发生故障时,系统仍可正常地对外提供服务。前置nginx负载均衡服务器使用软件反向代理的方式来实现负载均衡,部署为路由模式,系统内部网络与外部网络分属于不同的逻辑网络,以实现系统内部与外部网络的隔离,保护系统安全。在负载均衡算法选择上,为了实现连接最优分配,使用了最小连接法,每当用户请求来临时,任务分发单元会将任务平滑分给最小连接数的节点,这样的架构以廉价、透明的方式扩展了服务器和网络带宽,能够极大提升系统的并发量,同时保证前端整体的稳定性和可靠性。

  2. 缓存技术。通过对系统业务的分析,发现后端业务服务在进行相关的业务逻辑操作时,存在一部分数据使用频率很高但不会经常变化,如系统基本设置信息、用户登录信息等。这一部分数据如果每次使用都直接请求数据库,将会给数据库服务带来非常大的开销。为了解决这一问题,我们选择了redis作为缓存数据库,采用LRU缓存淘汰策略。在系统启动时,将脱敏规则从专用数据库中读出并缓存在redis中,用户登录时,也会将登录信息缓存在redis中,当服务再次使用到这部分信息时,便可直接从效率更高的redis中读取。对于部分在一定时间内不会变化的数据,如脱敏字典信息、敏感属性配置信息、脱敏策略信息、频繁脱敏的数据表等,也进行缓存。为了解决数据库和缓存一致性的问题,当读取数据时,会先读取redis缓存的数据,如果redis缓存不存在所要的数据,则从原数据库中读取,并将数据同步更新到redis缓存;当写回数据时,将数据直接写入到数据库中,并同步淘汰缓存中的数据。通过缓存技术,极大地提升了系统的性能,并且缓解了页面加载缓慢的问题。

  3. 数据库主从部署技术。系统使用缓存后,大部分读操作都可直接通过缓存完成,但仍然有部分读操作(未命中或缓存过期)和全部写操作需要访问数据库。当系统用户达到一定规模后,数据库因负载压力过高而成为整个系统瓶颈。对于数据脱敏系统来说,后端数据库存储的性能是极其重要的,所有用户的操作记录,所用脱敏字典策略(周期更新),部分脱敏后的数据(大部分脱敏数据对接到其他系统存储处理)都存储在数据库中。这里要求数据库读写有非常强的性能,考虑到业务读多写少,为了解决数据库的读性能瓶颈,本系统采用主从式部署数据库,实现读写分离架构。业务数据在写数据时,访问主数据库,主数据库通过主从复制机制将数据同步更新到从数据库,当业务服务需要读取数据时,就可以通过从数据库获得数据。业务服务通过使用专门的数据持久层访问模块(封装了读写连接池,读连接池能够实现故障自动转移)来访问读写分离后的数据库,使数据库读写分离对应用透明。为了缓解由磁盘硬件带来的性能瓶颈,数据库所依赖的硬件存储采用raid6的固态硬盘阵列,能够在硬件方面提升数据库的随机读写性能。通过主从数据库设计,提高数据库的运行效率。

在这次系统性能优化设计中,还使用了很多性能优化策略,如使用消息队列进行削峰,使用hystrix组件实现服务降级等,这里就不再一一赘述。系统经过性能测试、负载测试、压力测试、稳定性测试后,自2022年3月上线已运行三年有余,在数据生命周期的存储、传输、使用和共享环节投入使用,截至目前已脱敏3万余次,脱敏数据量达到103T,获得了单位领导同事和客户的一致好评。日常使用过程中最高出现过300余用户同时进行脱敏的情况,基本未出现请求超时,拒绝服务的情况,满足了数据脱敏系统的基本性能需求。

实践证明,数据脱敏系统顺利上线,并且稳定运行,与系统采用了充分的性能优化设计密不可分。经过这次数据脱敏系统性能优化方法的实施,我也看到了身上的不足之处,在未来还会不断更新知识,积累经验,完善本系统各方面的设计,在下次实施中使整个系统更加好用,更好的为用户服务,为社会服务。

📌 [ 笔者 ]   文艺倾年
📃 [ 更新 ]   2025.5.15
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,本人也很想知道这些错误,恳望读者批评指正!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADS1220高精度ADC(TI)——应用 源码

文章目录 德州仪器ADS1220概述资料引脚&封装布线寄存器配置寄存器0(00h)配置寄存器1(01h)配置寄存器2(02h)配置寄存器3(03h) 连续转换流程驱动源码ads1220.cads1220.h 德州仪器A…

Uniapp 安卓实现讯飞语音听写(复制即用)

在移动应用开发中,语音交互功能能够极大提升用户体验,让操作更加便捷自然。讯飞语音听写技术凭借其高准确率和稳定性,成为众多开发者的选择。本文将详细介绍如何在 Uniapp 项目中,实现安卓端的讯飞语音听写功能,帮助你…

【golang】DNS 资源记录(RR)接口

Go 中 miekg/dns 包对 DNS 资源记录(RR)接口 的定义: type RR interface {Header() *RR_HeaderString() stringcopy() RRlen(off int, compression map[string]struct{}) intpack(...)unpack(...)parse(...)isDuplicate(r2 RR) bool }这个接…

16.2 VDMA视频转发实验之模拟源

文章目录 1 实验任务2 系统框图3 硬件设计3.1 IP核配置3.2 注意事项3.3 自定义IP核源码 4 软件设计4.1 注意事项4.2 工程源码4.2.1 main.c文件 1 实验任务 基于14.1,相较于16.1,使用自定义IP核vid_gen_motion替换Xilinx TPG IP核。 2 系统框图 基于14…

深度学习之用CelebA_Spoof数据集搭建一个活体检测-训练好的模型用MNN来推理

一、模型转换准备 首先确保已完成PyTorch到ONNX的转换:深度学习之用CelebA_Spoof数据集搭建活体检测系统:模型验证与测试。这里有将PyTorch到ONNX格式的模型转换。 二、ONNX转MNN 使用MNN转换工具进行格式转换:具体的编译过程可以参考MNN的…

JVM学习专题(一)类加载器与双亲委派

目录 1、JVM加载运行全过程梳理 2、JVM Hotspot底层 3、war包、jar包如何加载 4、类加载器 我们来查看一下getLauncher: 1.我们先查看getExtClassLoader() 2、再来看看getAppClassLoader(extcl) 5、双亲委派机制 1.职责明确,路径隔离​&#xff…

部署安装gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm

目录 ​编辑 实验环境 所需软件 实验开始 安装部署gitlab171.配置清华源仓库(版本高的系统无需做)vim /etc/yum.repos.d/gitlab-ce.repo 2.提前下载包dnf localinstall gitlab-ce-17.9.7-ce.0.el8.x86_64.rpm --rocklinux 3.修改配…

使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别

使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别 动机 任务适配需求 Qwen2.5-VL在视觉理解方面表现优异,但电气主接线图识别需要特定领域的结构化输出能力(如设备参数提取、拓扑关系解析)。微调可增强模型对专业符号(如…

系统集成项目管理工程师学习笔记

第九章 项目管理概论 1、项目基本要素 项目基础 项目是为创造独特的产品、服务或成果而进行的临时性工作。 项目具有临时性、独特性、渐进明细的特点。项目的“临时性”是指项目只有明确的起点和终点。“临时性”并一定意味着项目的持续时间短。 项目可宣告结束的情况&…

Secs/Gem第七讲(基于secs4net项目的ChatGpt介绍)

好的,那我们现在进入: 第七讲:掉电重连后,为什么设备不再上报事件?——持久化与自动恢复的系统设计 关键词:掉电恢复、状态重建、初始化流程、SecsMessage 缓存机制、自动重连、事件再注册 本讲目标 你将理…

室内定位:热门研究方向与未解难题深度解析

I. 引言:对普适性室内定位的持续探索 A. 室内定位在现代应用中的重要性 室内定位系统(IPS)正迅速成为众多应用领域的基石技术,其重要性源于现代社会人们约70%至90%的时间在室内度过的事实 1。这些应用横跨多个行业,包括应急响应 1、智能建筑与智慧城市 6、医疗健康(如病…

Android学习总结之Glide自定义三级缓存(实战篇)

一、为什么需要三级缓存 内存缓存(Memory Cache) 内存缓存旨在快速显示刚浏览过的图片,例如在滑动列表时来回切换的图片。在 Glide 中,内存缓存使用 LruCache 算法(最近最少使用),能自动清理长…

Linux的文件查找与压缩

查找文件 find命令 # 命令:find 路径范围 选项1 选项1的值 \[选项2 选项2 的值…]# 作用:用于查找文档(其选项有55 个之多)# 选项:# -name:按照文档名称进行搜索(支持模糊搜索,\* &…

python处理异常,JSON

异常处理 #异常处理 # 在连接MySQL数据库的过程中,如果不能有效地处理异常,则异常信息过于复杂,对用户不友好,暴露过多的敏感信息 # 所以,在真实的生产环境中, 程序必须有效地处理和控制异常,按…

线程的两种实现方式

线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT) 1. 内核支持线程 顾名思义,内核支持线程即为在内核支持下的那些线程,它们的创建&am…

vue3基础学习(上) [简单标签] (vscode)

目录 1. Vue简介 2. 创建Vue应用 2.1 下载JS文件 2.2 引用JS文件 2.3 调用Vue方法​编辑 2.4 运行一下试试: 2.5 代码如下 3.模块化开发模式 3.1 Live Server插件 3.2 运行 4. 常用的标签 4.1 reactive 4.1.1 运行结果 4.1.2 代码: 4.2 ref 4.2.1 运行结果 4.2.2…

自定义分区器-基础

什么是分区 在 Spark 里,弹性分布式数据集(RDD)是核心的数据抽象,它是不可变的、可分区的、里面的元素并行计算的集合。 在 Spark 中,分区是指将数据集按照一定的规则划分成多个较小的子集,每个子集可以独立…

深入解析HTTP协议演进:从1.0到3.0的全面对比

HTTP协议作为互联网的基础协议,经历了多个版本的迭代演进。本文将详细解析HTTP 1.0、HTTP 1.1、HTTP/2和HTTP/3的核心特性与区别,帮助开发者深入理解网络协议的发展脉络。 一、HTTP 1.0:互联网的奠基者 核心特点: 短连接模式&am…

基于windows环境Oracle主备切换之后OGG同步进程恢复

基于windows环境Oracle主备切换之后OGG同步进程恢复 场景:db1是主库,db2是备库,ogg从db2备库抽取数据同步到目标数据库 db1 - db2(ADG) – ogg – targetdb 场景:db2是主库,db1是备库,ogg从db1备库抽取数…

微服务,服务粒度多少合适

项目服务化好处 复用性,消除代码拷贝专注性,防止复杂性扩散解耦合,消除公共库耦合高质量,SQL稳定性有保障易扩展,消除数据库解耦合高效率,调用方研发效率提升 微服务拆分实现策略 统一服务层一个子业务一…