論軟體系統架構風格

2021-10-12 09:39:17 字數 1460 閱讀 2179

宣告:本文為本人在軟考系統架構設計師備考期間的練手寫作,不保證內容的原創性與正確性,僅供參考,請勿照抄和用於學術**等正規場合,因不當使用產生後果一律自負。

前端web服務主要提供給使用者使用的介面,分為前置nginx負載均衡伺服器、前端**nginx集群。當使用者通過網路訪問系統時,首先會訪問到前置的nginx負載均衡伺服器,負載均衡伺服器會將請求**到前端**的nginx集群,前端**通過發起http請求來和後端互動,具體是通過ajax方式來呼叫後端rest api介面。使用者訪問**通過前置的nginx負載均衡伺服器來**到前端**集群,以起到將使用者請求進行分流的作用。當前端**集群中的部分服務發生故障時,系統仍可正常地對外提供服務。前置nginx負載均衡伺服器使用軟體反向**的方式來實現負載均衡,部署為路由模式,系統內部網路與外部網路分屬於不同的邏輯網路,以實現系統內部與外部網路的隔離。在負載均衡演算法的選擇上,使用最小連線法,每當使用者的請求來臨時,任務分發單元會將任務平滑分配給最小連線數的前端**節點,這樣的架構以廉價且透明的方式擴充套件了伺服器和網路的頻寬,可以大大提公升系統的併發量,同時保證**前端整體的穩定性和可靠性。

平台保障服務用以實現後端業務服務的基礎框架,包括api路由閘道器、服務註冊中心、服務監控元件。api閘道器收到前端的請求,不會直接呼叫後端的業務服務,而是首先會從服務註冊中心根據當前請求來獲取對應的服務配置,隨後通過服務配置再呼叫已註冊的服務。當後端服務存在多個例項時,將採取負載均衡的方式呼叫。服務註冊中心是整個後端服務架構體系的核心部分,由spring cloud的eureka元件來實現,專門提供服務的註冊和發現功能,涉及三種角色:服務提供者、服務消費者和服務註冊中心。api路由閘道器、所有業務服務,以及服務監控平台元件都註冊到服務註冊中心。通過服務註冊中心兩兩互相註冊、api路由閘道器向服務註冊中心註冊多個例項等方式,來實現後端整體服務的高可靠性。服務監控平台通過註冊到服務註冊中心,獲取所有註冊到服務註冊中心的後端業務服務,從而監控到所有後端業務服務的執行狀態資訊,最後收集並展示整個後端服務系統的執行狀態,更進一步保證整個後端的服務質量。

系統自2023年10月正式上線已執行一年有餘,在學校的日常教學考試和競賽培訓中投入使用,截至目前已有3000以上的學生使用者、評測了70000條以上的程式**,獲得了單位同事領導和學校教師們的一致好評。在開發和試執行過程中,主要遇到了兩個問題。一是跨域問題。oj系統前後端分離,前端通過ajax訪問後端服務。由於瀏覽器同源策略的限制,導致前端ui無法正常訪問不同埠和ip的後端服務。我們利用spring boot後端的cors跨域機制解決了該問題。二是評測機宕機問題。評測機服務需要執行使用者提交的**,但由於部分使用者短時間內提交了大量不安全**,導致所有評測機服務全部宕機。我們引入心跳機制、快照回滾機制,以及基於機器學習技術的預判斷機制,使評測服務宕機時能夠在10秒內自動重置恢復執行,最終解決了該問題。

實踐證明,oj系統專案能夠順利上線,並且穩定執行,與系統採用了合適的架構風格密不可分。經過這次微服務架構應用的方法和實施的效果後,我也看到了自己身上的不足之處,在未來還會不斷地更新知識,完善本系統的架構設計,使整個系統能夠更加好用,更有效地服務於高校師生。

論軟體系統架構

軟體構架是有關如下問題的設計層次 在計算的演算法和資料結構之外,設計並確定系統整體結構成為了新的問題。結構問題包括總體組織結構和全域性控制結構 通訊 同步和資料訪問的協議 設計元素的功能分配 物理分布 設計元素的組成 定標與效能 備選設計的選擇。軟體架構 software architecture ...

論軟體系統架構評估

2016年3月,我公司承擔了國家某安全中心漏洞挖掘系統的開發工作,我在該專案中承擔系統架構設計師的職務,主要負責系統的架構設計。該項目的主要目的是依託大資料平台從網際網路流量中挖掘未知漏洞。本文以漏洞挖掘系統為例,論述了軟體系統的架構評估。首先分析了軟體架構評估所普遍關注的質量屬性並闡述了其效能 可...

各種軟體架構風格

1 管道和過濾器風格 每個構件都有一組輸入和輸出,每個構件稱為乙個過濾器。連線過濾器被稱為管道。2 物件導向 3 基於事件的隱式呼叫過程 系統中的其他構件的過程在乙個事件或者多個事件中被註冊,一旦觸發就被呼叫 4 層次系統風格 使用者系統 基本工具 核心層 比如說目前廣泛應用的網際網路封層通訊協議 ...