1. 程式人生 > >《河北省重大技術需求征集系統》可用性及可修改性戰術分析

《河北省重大技術需求征集系統》可用性及可修改性戰術分析

宕機 自身 均衡 異構 客戶 架構 系統 代碼 和數

從可用性戰術分析來看:
應用層主要處理網站應用的業務邏輯,顯著特點是應用的無狀態性。對於應用服務器集群,實現這種服務器可用狀態實時監測、自動轉移失敗任務的機制是負載平衡。
負載平衡主要是用在業務量和數據量較高的情況下,當單臺服務器不足以承擔所有壓力時通過負載均衡將流量分攤到一個集群組成的多臺服務器上,以提高整體的負載處理能力。
Session管理:
1)Session復制:在幾臺服務器之間同步session對象,使得每臺服務器上都保存所有用戶的session信息。
2)Session綁定:負載均衡的源地址hash算法。負載均衡服務器總是將來源於同一IP的請求分發到同一臺服務器上。又稱作會話黏滯。
3)利用cookie記錄session:將session記錄在客戶端
4)Session服務器:利用獨立不熟的session服務器(集群)統一管理session。
2,服務層的高可用
1)分級管理:將服務器進行分級管理,核心應用和服務優先使用更好的硬件。
2)超時設置:在應用程序中設置服務超時時間。
3)異步調用:應用對服務的調用通過消息隊列等異步方式完成,避免一個服務失敗導致整個應用請求失敗的情況。
4)服務降級:通過拒絕服務(拒絕低優先級應用的調用,減少服務調用並發數,或者隨機拒絕部分請求調用)和關閉功能(關閉部分不重要的服務)
5)冪等性設計:在服務層保證服務重復調用和調用一次產生的結果相同。
3,數據層的高可用
保證數據存儲高可用的主要手段是數據備份和失效轉移機制。數據備份是保證數據有多個副本,任意副本都不會導致數據的永久丟失,從而實現數據的持久化;而失效轉移機制則保證當一個數據副本不可訪問時,可以快速切換訪問數據的其他副本,保證系統可用。
CAP原理:一個提供數據服務的存儲系統無法同時滿足數據一致性、數據可用性、分區耐受性這三個條件。
數據備份:
1)冷備份:簡單廉價/不能保證數據最終一致和數據可用性。
2)熱備份:異步熱備份/同步熱備份。異步方式試制多份數據副本的寫入操作異步完成,應用程序收到數據服務系統的寫操作成功響應時只寫成功了一份,存儲系統會異步的寫其他副本。同步方式是指多分數據副本的寫入操作同步完成,即應用程序收到數據服務系統的寫成功響應時,多分數據都已經寫操作成功。
失效轉移:
1)失效確認:心跳檢測和應用程序訪問失敗報告
2)訪問轉移:對於完全對等存儲的服務器,其中一臺宕機後切換到對等服務器上;若是不對等的,就需要重新計算路由選擇存儲服務器
3)數據恢復:系統需要從間看的服務器復制數據將數據副本數目恢復到設定值
4,高可用的軟件質量保證
1)網站發布
2)自動化檢測
3)預發布驗證
4)代碼控制
主幹開發、分支發布
分支開發、主幹發布
5)自動化發布
6)灰度發布
5,網站運行監控
不允許沒有監控的系統上線
1)監控數據采集
用戶行為日誌收集
服務器端日誌收集
客戶端瀏覽器日誌收集(頁面中嵌入JavaScript腳本)
服務器性能監控
運行數據報告
2)監控管理
系統報警
失效轉移
自動優雅降級

《河北省重大需求征集系統 》中就基本包括以上所存在的大部分要求,例如對於服務管理方面,存在多個審核員,具備不同權限,而且存在一個超級管理員來分配其權限。

從可修改形式戰術方面分析:

擴展性:指對現有系統影響最小的情況下,系統功能可持續擴展或提升的能力。
伸縮性:指系統能夠通過增加(減少)自身資源規模的方式增強(減少)自己計算處理事務的能力

1,構建可擴展的網站架構
設計網站可擴展架構的核心思想是模塊化,並在此基礎上,降低模塊間的耦合性,提高模塊的復用性。
模塊分布式部署以後具體聚合方式主要由分布式消息隊列和分布式服務。

2,利用分布式消息隊列降低系統耦合性
1)事件驅動架構
通過在低耦合的模塊之間傳輸事件消息,以保持模塊的松散耦合,並借助時間消息的通信完成模塊間合作,典型的EDA架構就是操作系統中常見的生產者消費者模式。最常用的是分布式消息隊列。
2)分布式消息隊列
如erlang開發的rabbitmq和java開發的activemq

3,利用分布式服務打造可復用的業務平臺
如果說分布式消息隊列通過消息對象分解系統耦合性,不同子系統處理同一個消息;那麽分布式服務則通過接口分解系統耦合性,不同子系統通過相同接口描述進行服務調用。
巨無霸應用系統問題;
編譯部署困難
代碼分支管理困難
數據庫連接耗盡
新增業務困難
解決方案就是拆分,將模塊獨立部署,降低系統耦合性。拆分開分為:橫向拆分和縱向拆分兩種。
1)Web Service與企業級分布式服務
缺點:
臃腫的註冊與發現機制
低效的XML序列化手段
開銷相對較高的HTTP遠程通信
復雜的部署與維護手段
2)大型網站分布式服務的需求與特點
負載均衡
失效轉移
高效的遠程通信
整合異構系統
對應用最少侵入
版本管理
實時監控

3,可擴展的數據結構
例如:NoSQL中的列族

《河北省重大需求征集系統》中我們將一零散的統計查詢功能放在一起方便用戶的使用,而且在數據庫方面也可以隨時添加行列,用於改變數據。而且在本身的大系統上也算是幾個大的模塊拼接起來,隨時也可以拆分用於修改重寫。

《河北省重大技術需求征集系統》可用性及可修改性戰術分析