關於 Auto Discovery 服務

本頁提供 Memorystore for Memcached 的 Auto Discovery 服務總覽。如要瞭解如何存取 Auto Discovery 服務並連線,請參閱「使用 Auto Discovery 服務」。

自動探索服務是一種程式輔助方式,可讓用戶端在您擴充 Memcached 執行個體時,自動新增及移除節點 IP 位址。

如果您未使用自動探索服務,則必須在調整資源配置期間,手動管理 memcached 用戶端中的節點 IP 位址清單。您必須確保在執行個體縮放時更新用戶端,因此手動管理節點 IP 位址清單會增加額外負擔。Auto Discovery 可協助您自動執行這項工作。

您應將自動探索端點用於其預期用途,而非用於執行 getsetdelete 等 Memcached 指令。

Auto Discovery 服務架構總覽

Memorystore for Memcached 會使用探索端點公開 Auto Discovery 服務。探索端點是執行個體的專屬 IP 位址,可傳回 Memcached 執行個體中的目前節點清單。每個 Memorystore for Memcached 執行個體都有專屬的探索端點。建立執行個體後,探索端點的 IP 位址就不會變更。

如要取得執行個體的自動探索資訊,請查詢探索端點。探索端點會傳回以下資訊:

欄位 說明 資料類型 範例
設定版本 ID 每當節點清單變更,就會遞增的 ID 整數 9
節點清單 傳回目前節點和其 IP 位址的清單。 字串 node1-ip|node1-ip|node1-port node2-ip|node2-ip|node2-port

Memorystore for Memcached 會直接公開探索端點,但用戶端程式庫也必須提供自動探索功能。在用戶端中啟用自動探索功能的方法有兩種:

  1. 使用支援自動探索的用戶端程式庫。

    • Golang memcached 用戶端分支。
  2. 手動將自動探索邏輯新增至用戶端程式庫。

Auto Discovery 服務行為

Auto Discovery 服務最終會達到一致性。在資源調度作業後,自動探索節點清單可能會延遲 (以秒為單位),才能追上目前的叢集設定。

除了服務的區塊鏈性質,最終一致性也可能為用戶端產生下列行為。用戶端邏輯應設計為考量以下行為:

  • 同一個用戶端對 Auto Discovery 服務提出兩個不同的查詢時,可能會收到兩個不同的 Auto Discovery 回應 (如果服務不一致)。不過,其中一個回應的 Configuration version ID 較高,可供用戶端用來處理回應。

  • 兩個用戶端可以從服務接收兩種不同的自動探索回應 (當服務不一致時),但由於用戶端不會彼此溝通,因此無法找出哪一個是最新的。在這個狀態下,執行個體可以傳回快取遺漏。在這種情況下,用戶端必須等待自動探索服務變得一致。

後續步驟