系統架構設計面試指南(01)-微服務和CAP

ITPUB社群發表於2023-12-25

來源:JavaEdge

系統設計是定義滿足特定需求的系統的架構、介面和資料的過程。系統設計透過協同和高效的系統滿足您的業務或組織需求。一旦業務或組織確定了其需求,就可以開始構建一個將這些需求融入物理系統設計的過程,以滿足客戶的需求。您設計系統的方式將取決於您是選擇自定義開發、商業解決方案還是兩者結合。

系統設計需要對構建和工程系統採取系統的方法。良好的系統設計要求您考慮基礎設施的方方面面,從硬體和軟體,一直到資料及其儲存方式。

系統設計基礎知識

水平和垂直擴充套件

可擴充套件性是指應用程式在不犧牲延遲的情況下能夠處理和經受增加的工作負載的能力。應用程式需要強大的計算能力才能良好地進行擴充套件。伺服器應該足夠強大,以處理增加的流量負載。有兩種主要的擴充套件應用程式的方式:水平和垂直。

水平擴充套件,或稱為橫向擴充套件,意味著向現有硬體資源池中新增更多硬體。這會增加系統整體的計算能力。垂直擴充套件,或稱為縱向擴充套件,意味著增加伺服器的效能。這會提高執行應用程式的硬體的效能。

這兩種擴充套件方式都有各自的優缺點。在某些情況下,您需要考慮權衡並決定哪種型別的擴充套件對您的用例最適合。瞭解擴充套件的好處和風險,對應用程式可擴充套件性產生負面影響的主要瓶頸等內容。

微服務

[微服務],或稱為微服務架構,是一種透過鬆散耦合的服務構建應用程式的體系結構風格。它將大型應用程式劃分為獨立的、模組化的服務。這些模組可以獨立開發、部署和維護。

在微服務體系結構中,每個微服務都有一個專門的團隊負責。

當團隊#1超出單個微服務的限制時,我們可以輕鬆地擴充套件微服務以滿足團隊需求的變化。

與傳統的單體應用程式相比,微服務的執行速度更快、更可靠。由於應用程式被分解為獨立的服務,每個服務都有自己的邏輯和程式碼庫。這些服務可以透過應用程式程式設計介面(API)相互通訊。

對於希望開發更具可擴充套件性應用程式的組織來說,微服務是理想的選擇。由於其現代的能力和模組,微服務使得更容易擴充套件應用程式。如果您與一個龐大或不斷增長的組織合作,微服務對您的團隊非常有利,因為它們更容易隨著時間的推移進行擴充套件和定製。

代理伺服器

[代理伺服器],或稱為正向代理,充當使用者和網際網路之間的通道。它將終端使用者與他們瀏覽的網站分開。代理伺服器不僅轉發使用者請求,還提供許多好處,例如:

  • 提高安全性
  • 提高隱私性
  • 訪問被阻止的資源
  • 控制員工和子女的網際網路使用
  • 快取資料以加速請求

每當使用者傳送對終端伺服器的地址的請求時,流量都會透過代理伺服器流向該地址。當請求返回到使用者時,它會透過相同的代理伺服器返回給使用者。

正向代理

CAP 定理

CAP 定理是系統設計領域的基本定理。它指出分散式系統在分割槽的情況下只能同時提供一致性、可用性和分割槽容錯性中的兩個屬性。該定理在分割槽存在時形式化了一致性和可用性之間的權衡。

未完待續。。

來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70024420/viewspace-3001352/,如需轉載,請註明出處,否則將追究法律責任。

相關文章