關於 Auto Discovery 服務

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

用戶端可透過自動探索服務,以程式輔助方式自動適應節點 IP 位址的增減,這類增減會在您調整 Memcached 執行個體規模時發生。

如果您未使用自動探索服務,就必須在資源調度期間,手動管理 memcached 用戶端中的節點 IP 位址清單。手動管理節點 IP 位址清單會增加額外負擔,因為您必須確保用戶端在執行個體擴充和縮減時會更新。自動探索功能可協助您自動完成這項工作。

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

Auto Discovery 服務架構總覽

Memorystore for Memcached 會透過探索端點公開自動探索服務。探索端點是執行個體的專屬 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 服務行為

自動探索服務最終會保持一致。在調度作業後,自動探索節點清單趕上目前的叢集設定時,可能會出現延遲 (以秒為單位)。

除了服務的分散式性質外,最終一致性也可能導致用戶端出現下列行為。用戶端邏輯應設計為考量這項行為:

  • 如果同一位用戶端對自動探索服務發出兩項不同的查詢,服務可能會傳回兩項不同的自動探索回應 (服務不一致時)。不過,其中一項回應的 Configuration version ID 較高,用戶端可用於處理回應。

  • 兩個用戶端可能會從服務收到兩項不同的自動探索回應 (服務不一致時),但由於用戶端不會彼此通訊,因此無法判斷哪一個是最新回應。處於這種狀態時,執行個體可能會傳回快取未命中。在這種情況下,用戶端必須等待自動探索服務恢復一致。

後續步驟