天天看點

可用性戰術

可用性戰術的目标

阻止錯誤發展為故障,或者能夠把錯誤的影響限制在一定範圍内,使系統恢複成為可能。

維持可用性的方法(錯誤檢測、錯誤恢複、錯誤預防)

  • 錯誤檢測:檢測故障的某種類型的健康監視(3種戰術)
  • 信号/響應:一個元件發出一個信号,并希望在預定義的時間内收到一個來自審查元件的響應
  • 适用場景:可以用在共同負責某項任務的一組元件内
  • 方式:主動詢問,必須要求回答響應(可類比上課點名)
  • 心跳:一個元件定期發出一個心跳資訊,另一個元件收聽該資訊。
  • 适用場景:可用于傳遞資料
  • 方式:被動方式(可類比上司聽取員工彙報工作)
  • 異常:異常處理程式通常将錯誤在語義上轉換為可以被處理的形式,異常通常與引入異常的程式在同一個程序中
if( x==0 )
      {
          throwException()
      }      
  • 錯誤恢複:檢測到故障時某種類型的恢複(6種錯誤恢複的戰術)
  • 表決:運作在備援處理器上的每個程序都具有相等的輸入,它們計算的值都發給表決者,表決者發現異常則終止程序
  • 算法:多數規則、首選元件
  • 适用場景:通常用于糾正算法的錯誤操作或處理器的故障,用在控制系統中
  • 主動備援:所有的備援元件都以并行的方式對事件做出響應,它們的狀态都相同,但每次隻使用一個元件的響應而丢棄其餘元件的響應
  • 适用場景:通常用在客戶機/伺服器的配置,恢複時間一般在幾毫秒内
  • 被動備援:主元件對事件做出響應,并通知其它備用元件必須進行的狀态更新;保持主/從元件的狀态一緻(主元件負責狀态同步)
  • 适用場景:通常用在控制系統中,恢複時間一般在幾秒内
  • 備件:備件是計算平台配置用于更換各種不同的故障元件。出現故障時,必須将其重新啟動為适當的軟體配置,并對其狀态進行初始化
  • 适用場景:通常用在備用客戶機工作站,恢複時間一般在幾分鐘内
  • 狀态再同步:主動和被動備援戰術要求所恢複的元件在重新提供服務前更新其狀态
  • 檢查點/復原:檢查點就是記錄所建立的一緻狀态,遇到故障,可以使用上次正确的檢查點狀态
  • 錯誤預防:防止錯誤演變成故障(即使發生錯誤,也可在極短的時間内恢複)
  • 從服務中删除:從操作中删除了系統的一個元件,以執行某些活動來防止預期發生的故障
  • 适用場景:删除程序再重新啟動,以防止記憶體洩露導緻故障的發生漏
  • 事務:使用事務來保證資料的一緻性,即幾個相關密切的步驟,要麼全成功,要麼都不成功
  • 适用場景:程序中某步驟出錯,使用事務來防止任何資料受到影響;使用事務來防止通路相同資料的幾個同時線程之間發生沖突
  • 程序螢幕:通過監視程序來處理程序的錯誤,一旦檢測到程序中存在錯誤,監視程序删除非執行程序,并為該程序建立新的執行個體

可用性戰術常用場景