什麼是微服務的可擴充套件性、高可用性和效能伸縮?
Overview
可擴充套件性、高可用性和效能
術語可擴充套件性、高可用性、效能和關鍵任務對於不同的組織或組織內的不同部門來說可能意味著不同的事情。它們經常互換,造成混亂,導致管理不善的期望、實現延遲或不切實際的指標。\ 這裡的快速參考為您提供了定義這些術語的工具,以便您的團隊能夠實現具有良好理解的效能目標的關鍵任務系統。
可擴充套件性
它是一個系統或應用程式的屬性,可以處理更多的工作,或者很容易地進行擴充套件,以響應對網路、處理資料、資料庫訪問或日益增長的檔案系統資源需求。
水平擴充套件性
當系統進行擴充套件時,通過新增與現有節點功能相同的新節點,在所有節點之間重新分配負載,可以橫向擴充套件或向外擴充套件。SOA系統和Web伺服器通過向負載平衡網路中新增更多的伺服器來擴充套件,以便傳入的請求可以分佈在所有伺服器中。叢集是描述擴充套件處理系統的常用術語。
圖 1: 叢集
垂直擴充套件性
當系統通過向節點新增處理、主記憶體、儲存裝置或網路介面來擴充套件以滿足每個系統的更多請求時,系統會垂直或向上擴充套件。虛擬主機通過增加處理器數量或主記憶體數量來擴大規模,以便在同一硬體中承載更多虛擬伺服器
圖 2:虛擬化
高可用性
可用性描述一個系統在一段時間內提供有用資源的能力。高可用性保證了一個時間視窗內的功能連續性的絕對程度,該時間視窗表示為正常執行時間和停機時間之間的關係。
A = 100 – (100*D/U), D ::= unplanned downtime, U ::= uptime; D, U expressed in minutes
正常執行時間和可用性並不是同一個概念。一個系統可能會執行一個完整的測量週期,但可能由於網路中斷或相關支援系統的停機而不可用。停機和不可用是同義詞。
測量可用性
供應商將可用性定義為給定的“9”個數,如表1所示,其中還描述了與365天一年或525600分鐘數相關的估計停機時間的分鐘或秒數,使U成為其營銷目的的常數。
可用性 %停機時間/分鐘停機時間/年供應商術語9052,560.0036.5 天一個9995,256.004 天兩個999.9525.608.8 小時三個999.9952.5653 分鐘四個999.9995.265.3 分鐘五個999.99990.5332 秒六個9
表格1 1: 可用性佔每年總正常執行時間的百分比
分析
高可用性取決於為系統需求定義的預期正常執行時間;所以不要被供應商的資料誤導。也就是說,擁有高可用性系統及其可測量的正常執行時間的意義是服務級別協議的直接功能。\ 當考慮到計劃的停機時間(如每月8小時的維護時間)時,可用性會增加。每增加9個可用性的成本都會成倍增長。\ 可用性是將系統向上或向外擴充套件並實現系統、網路和儲存冗餘的功能。
服務等級協議 (SLA)
服務水平協議是一種協議條款,概述了交付和使用系統所涉及的雙方的關係,例如:
- 系統型別(虛擬或專用伺服器、共享主機 )
- 可用性級別分鐘目標?
- 執行時間網路電源維護視窗
- 可維護性
- 效能和指標
- 費用
SLA可以約束兩個內部組織(如IT和電子商務部門)之間的義務,或者組織與外包服務提供商之間的義務。SLA建立用於評估系統性能的指標,並提供可用性和可擴充套件性目標的定義。除非正在制定或已經存在一個SLA,否則談論任何這些話題都沒有意義。
伸縮性
伸縮性是根據需求動態新增和刪除系統中資源的能力,是水平或垂直擴充套件的專門實現。
當需求在繁忙時期增加時,更多的節點可以自動新增到叢集中,以在需求減弱時進行擴充套件和刪除,類似於實體零售商的季節性招聘。此外,可以重新分配系統資源,以更好地支援動態擴充套件的系統。
- 通過自動化單元測試的形式守護系統架構
- 如何實現資料庫讀一致性
- 什麼是微服務的可擴充套件性、高可用性和效能伸縮?
- 詳解 MongoDB 索引優化
- 搜尋中常見資料結構與演算法探究
- 各大中介軟體底層技術-分散式一致性協議 Raft 詳解
- Java多執行緒批量操作,居然有人不做事務控制?
- Java 下資料業務邏輯開發技術 JOOQ 和 SPL
- spring中每個模組都具有什麼功能呢?
- Spring MVC九大元件簡介說明
- SpringBoot 中使用 @Valid 註解 Exception 全域性處理器優雅處理引數驗證
- maven引入本地jar包,執行時報錯"java.lang.NoClassDefFoundError"--如何處理呢?
- 說說 Spring 定時任務如何大規模企業級運用
- 掌握這些 Spring Boot 啟動擴充套件點,已經超過 90% 的人了!
- 高併發下秒殺商品,你必須知道的9個細節