我想知道 Amazon Aurora for MySQL 或 PostgreSQL 如何在讀取器節點之間分配工作負載。
解決方法
使用讀取器端點連線至 Amazon Aurora 叢集中的讀取器節點。
若要驗證連線的輪換分配,請執行 shell 命令。若要查看 Aurora 如何嘗試對讀取器端點的連線進行負載平衡,請執行類似下列範例的命令:
while sleep 5; do dig xxx-cluster.cluster-ro-xxxxxx.us-east1.rds.amazonaws.com|grep CNAME; done
每次解析讀取器端點時,您都會得到一個可以連線的執行個體 IP 位址。此 IP 位址是根據輪換分配選擇的。
在下列情況下,與每個僅供讀取複本的資料庫連線可能無法均勻分配:
- 用戶端快取 DNS 資訊。當用戶端使用快取連線設定連線到相同的 Aurora 複本時,會發生不均勻的分配。DNS 快取可以在任何地方發生,包括您的網路層、作業系統或應用程式容器。
- 如果資料庫執行個體失敗,則讀取器端點可能會重新導向連線。讀取器端點可能會暫時引導連線至資料庫叢集的主要資料庫執行個體。當 Aurora 複本升級到主要資料庫執行個體時,就會發生此重新導向。
- 僅供讀取複本無法使用或運作狀態檢查失敗。
- 應用程式以 Java 編寫,您無法關閉或調整 TTL 快取。當您無法關閉或調整 TTL 快取時,Java 虛擬機器 (JVM) 可能無限期地快取 DNS。如需詳細資訊,請參閱為 DNS 名稱查詢設定 JVM TTL。
- 當連線同時發生時,連線會傳送至相同的讀取器端點。
當您管理工作負載分配時,請使用自訂端點以提高靈活性。例如,如果您在叢集中使用不同的資料庫執行個體大小,則可以使用自訂端點。
相關資訊
Amazon Aurora 連線管理