【系統架構師】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.pswp.cn/web/80009.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80009.shtml
英文地址,請注明出處:http://en.pswp.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穩定性有保障易擴展,消除數據庫解耦合高效率,調用方研發效率提升 微服務拆分實現策略 統一服務層一個子業務一…