本頁提供 Memorystore for Memcached 的 Auto Discovery 服務總覽。如要瞭解如何存取及連線至 Auto Discovery 服務,請參閱「使用 Auto Discovery 服務」。
用戶端可透過自動探索服務,以程式輔助方式自動適應節點 IP 位址的增減,這類增減會在您調整 Memcached 執行個體規模時發生。
如果您未使用自動探索服務,就必須在資源調度期間,手動管理 memcached 用戶端中的節點 IP 位址清單。手動管理節點 IP 位址清單會增加額外負擔,因為您必須確保用戶端在執行個體擴充和縮減時會更新。自動探索功能可協助您自動完成這項工作。
您應將自動探索端點用於預期用途,而非執行 get、set 和 delete 等 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 會直接公開探索端點,但用戶端程式庫也必須提供自動探索功能。您可以在用戶端中透過兩種方式啟用自動探索功能:
使用支援自動探索功能的用戶端程式庫。
- Golang memcached 用戶端分叉。
手動將自動探索邏輯新增至用戶端程式庫。
Auto Discovery 服務行為
自動探索服務最終會保持一致。在調度作業後,自動探索節點清單趕上目前的叢集設定時,可能會出現延遲 (以秒為單位)。
除了服務的分散式性質外,最終一致性也可能導致用戶端出現下列行為。用戶端邏輯應設計為考量這項行為:
如果同一位用戶端對自動探索服務發出兩項不同的查詢,服務可能會傳回兩項不同的自動探索回應 (服務不一致時)。不過,其中一項回應的
Configuration version ID較高,用戶端可用於處理回應。兩個用戶端可能會從服務收到兩項不同的自動探索回應 (服務不一致時),但由於用戶端不會彼此通訊,因此無法判斷哪一個是最新回應。處於這種狀態時,執行個體可能會傳回快取未命中。在這種情況下,用戶端必須等待自動探索服務恢復一致。
後續步驟
- 瞭解如何使用 Auto Discovery 服務。
- 查看可用的 Memcached 設定。