雲上的分散式快取

danny_2018發表於2022-06-29

分散式快取是基於雲的應用程式的一個重要方面,適用於內部部署、公共或混合雲環境。它有助於增量擴充套件,允許快取增長併合並資料增長。在這篇文章中,我們將探討雲上的分散式快取,以及為什麼它對有高資料量和負載的環境很有用。這篇文章將涵蓋:

傳統快取的挑戰;

什麼是分散式快取;

雲上分散式快取的好處;

推薦的分散式快取資料庫工具;

在雲上部署分散式快取的方法;

傳統快取挑戰

傳統的快取伺服器通常以有限的儲存和 CPU 速度部署。這些快取基礎設施通常駐留在內部的資料中心上。也就是非分散式快取伺服器。傳統的分散式快取帶來了許多挑戰,例如:

非雲節點伺服器上難以擴充套件的快取儲存和 CPU 速度。

管理基礎設施和未使用的硬體資源的高運維成本。

傳統的分散式快取不是容器化的。這就是為什麼它不具備可擴充套件性、彈性和自我管理能力。

如果客戶端負載高於實際負載,伺服器可能會崩潰。

與多個資料中心伺服器進行程式同步期間資料過時的可能性。

伺服器和各個資料中心之間的資料同步慢。

什麼是分散式快取

快取是一種將資料狀態儲存在主儲存之外並將其儲存在高速記憶體中以提高效能的技術。在微服務環境中,所有應用程式都使用它們的多個例項部署在混合雲上的各種伺服器/容器中。在雲上的多叢集 Kubernetes 環境中需要一個快取源來集中儲存資料並將其複製到自己的快取叢集上。它將用作在分散式環境中快取資料的單點儲存。

雲上分散式快取的好處

定期快取經常使用的讀取 REST API 響應可確保更快的 API 讀取效能。

透過直接從分散式快取資料庫訪問快取資料來減少資料庫網路呼叫。

透過在叢集中的各種快取資料庫中維護多個資料副本來實現彈性和容錯。

透過根據負載或客戶端請求自動縮放快取資料庫來實現高可用性。

儲存會話秘密令牌,例如 JSON Web Token (ID/JWT),用於微服務應用程式容器的身份驗證和授權。

如果將其用作高負載關鍵任務應用程式的專用資料庫解決方案,則可以在記憶體中進行更快的讀寫訪問。

避免對持久資料庫的不必要的往返資料呼叫。

可自動擴充套件的雲基礎設施部署。

分散式快取庫/解決方案的容器化。

從任何同步連線的快取資料中心一致地讀取資料。

快取資料的最小到無中斷高可用性。

快取資料伺服器之間更快的資料同步。

推薦的分散式快取資料庫工具

以下是流行的行業認可的快取伺服器:

Redis

Memcache

GemFire

Hazelcast databases

Redis:它是最流行的分散式快取服務之一,它支援不同的資料結構。它是一種開源的記憶體內資料儲存,被數百萬開發人員用作資料庫、快取、流引擎和訊息代理。它還有一個企業版。它可以部署在私有云、公共雲和混合雲等容器中,並在不同的資料中心之間提供一致和更快的資料同步。

Hazelcast:Hazelcast 是一個分散式計算和儲存平臺,用於針對事件流和傳統資料來源進行一致的低延遲查詢、聚合和有狀態計算。它允許你快速構建資源高效的實時應用程式。你可以在任何規模上部署它,從小型邊緣裝置到大型雲例項叢集。Hazelcast 節點叢集共享資料儲存和計算負載,可以動態擴充套件和縮減。當你向叢集新增新節點時,資料會自動在叢集中重新平衡。當前處於執行狀態的計算任務(作業)對它們的狀態進行快照,並透過處理保證進行擴充套件。

Memcached:它是一個開源、高效能、分散式的記憶體物件快取系統。它本質上是通用的,但旨在透過減輕資料庫負載來加速動態 Web 應用程式。Memcached 是一種記憶體鍵值儲存,用於儲存來自資料庫呼叫、API 呼叫或頁面渲染結果的任意資料(字串、物件)的小塊。Memcached 簡單但功能強大。其簡單的設計促進了簡單、快速的部署和開發。它解決了許多資料快取問題,其API 支援各種常用語言。

GemFire:它提供分散式記憶體內資料網格快取,由 Apache Geode 開源提供支援。它按需擴充套件資料服務以支援高效能。它是一種鍵值儲存,可以快速執行讀寫操作。它提供高度可用的並行訊息佇列、連續可用性和事件驅動的架構,可在不停機的情況下動態擴充套件。

它提供多站點複製。隨著資料大小要求的增加以支援高效能的實時應用程式,它可以輕鬆線性擴充套件。應用程式獲得對資料訪問請求的低延遲響應,並始終返回新資料。它維護跨分散式節點的事務完整性,並支援應用程式的高併發、低延遲資料操作。它還提供節點故障轉移和跨資料中心或多資料中心複製,以確保應用程式具有彈性,無論是在內部還是在雲中。

在混合雲上部署分散式快取的方法

以下是部署和設定分散式快取的推薦方法,無論是在公共雲還是混合雲上:

——傳統 VM 例項上的開源分散式快取。

——Kubernetes 容器上的開源分散式快取。筆者建議在 Kubernetes 容器上部署以獲得高可用性、彈性、可擴充套件性和更快的效能。

——在 VM 和容器上部署企業商業現成的分散式快取。筆者會推薦企業版,因為它們會提供額外的功能和支援。

——公共云為 Redis、Hazelcast 和 Memcache 等開源和企業工具提供分散式快取託管服務。

——快取伺服器可以部署在多個源上,例如本地和公共雲、公共伺服器或不同可用區中的僅一臺公共伺服器。

結論

分散式快取現在是混合雲上分散式部署環境中分散式微服務應用程式的事實上的要求。它解決了重要用例中的問題,例如在 Web 瀏覽器上禁用 cookie 時維護使用者會話、提高 API 查詢讀取效能、避免相同型別請求的操作成本和資料庫命中、管理用於身份驗證和授權的秘密令牌等。

分散式快取自動同步混合雲上的資料,無需任何手動操作,始終提供最新資料。筆者推薦行業標準的分散式快取解決方案 Redis、Hazelcast、Memcached 和 GemFire。我們需要根據用例在雲端選擇更好的分散式快取技術。

來自 “ 開源雲中文社群 ”, 原文作者:開源雲中文社群;原文連結:https://mp.weixin.qq.com/s/rS6UePxnEXqkNlDtiur4tg,如有侵權,請聯絡管理員刪除。

相關文章