為避免共用代理的穩定性、可擴充性和效能問題,阿里雲RDS MySQL推出獨享型代理功能,已開啟共用代理的執行個體可以升級為獨享型代理。
2021年04月01日起,RDS MySQL共用代理功能將停止更新維護,僅提供產品服務支援人員,建議您儘快升級到獨享型代理。詳細通知,請參見【通知】2021年04月01日起共用代理功能停止更新維護。
共用代理暫不支援直接升級至通用型代理,您可以先升級至獨享型代理後,再變更代理類型至通用型代理。更多資訊,請參見變更代理配置、通用型代理和獨享型代理。
升級特惠
現在升級獨享型代理,可在一定期限內免費使用獨享型代理(額外新增代理個數需要收費)。不同付費類型的主執行個體優惠內容如下:
隨用隨付:自升級日起,免費使用獨享型代理一年。
訂用帳戶:自升級日起,免費使用獨享型代理至少一年,取決於主執行個體的到期時間。
主執行個體到期時間距離升級日大於一年,則您可免費使用獨享型代理直到執行個體到期。
說明如果您通過續約延長了主執行個體到期時間,仍然以續約前的主執行個體到期時間為準。
主執行個體到期時間距離升級日小於一年,則您可免費使用獨享型代理一年。
注意事項
優惠期限內調整獨享型代理數量,只有超過預設數量的獨享型代理才需要額外付費。例如系統預設建立6個獨享型代理,無論您如何調整,只要代理數量不超過6個就無需額外付費。但如果您一共建立了7個獨享型代理,則需要為多出的1個獨享型代理單獨付費。
優惠期限內關閉獨享型代理則優惠即時結束,再次開啟需要正常付費。
前提條件
費用
升級為獨享型代理時,系統會根據RDS執行個體(主執行個體及其唯讀執行個體)總規格,計算出獨享型代理個數,按小時付費。具體價格請參見資料庫獨享型代理費用說明。
背景資訊
RDS MySQL的讀寫分離功能基於代理實現。部分存量MySQL 5.6、5.7執行個體的讀寫分離功能基於共用代理實現,存在穩定性風險,建議升級為獨享型代理。相比共用代理,獨享型代理有以下優勢:
穩定性和隔離性更好。
效能更高。例如在資料庫不是瓶頸時,使用SysBench在OLTP情境測試,一個獨享型代理能夠提供20,000 QPS。
獨享型代理數量可擴充,方便擴容業務。
獨享型代理的效能可監控,您可以根據監控及業務規劃調整相應的獨享型代理個數,即時生效。
提供獨享型代理串連地址,應用使用該地址後不用反覆變更應用內的地址,減少維護成本,只要不釋放代理,代理串連地址可以永遠使用。例如您在大促時期開啟讀寫分離,大促結束後釋放唯讀執行個體,關閉讀寫分離,也不用變更應用內的串連地址。
基於獨享型代理串連地址可以實現讀寫分離、短串連最佳化、事務拆分等功能。
獨享型代理的詳情請參見什麼是資料庫代理。
下文將介紹如何將存量的共用代理升級為獨享型代理。
注意事項
獨享型代理的串連模型是1:N(即您的一個串連會後端串連到主執行個體和所有隻讀執行個體),建議開通獨享型代理後,主執行個體和唯讀執行個體的串連數規格盡量一致,否則業務的串連數會受限於最小規格的執行個體串連數限制。
切換到獨享型代理後,新增唯讀執行個體或重啟唯讀執行個體時,只有新的串連的請求才會路由到新的唯讀執行個體或重啟的唯讀執行個體,老的串連請求不會路由過去。
主執行個體與唯讀執行個體的參數max_prepared_stmt_count需要保持一致。
資料庫代理升級前後的串連地址均不會發生改變,但會造成虛擬IP(VIP)的變更,請盡量保證在您的應用程式中使用串連地址進行串連,而不使用IP地址。
請及時清理用戶端DNS緩衝。用戶端採用JVM的應用,建議將JVM配置中的TTL設定為不超過60秒,可確保在串連地址的VIP地址發生變更時,應用程式可以通過重新查詢DNS來接收和使用資源的新VIP地址。
說明JVM中設定TTL的方法請參見JDK官方文檔:Class InetAddress。
獨享型代理協議層預設啟用多語句(multi-statement)功能。若應用程式層未開啟此功能且使用了多語句,則會導致SQL錯誤。請預先檢查並設定相應的串連參數,如在JDBC中添加
allowMultiQueries=true
。更多注意事項,請參見資料庫代理注意事項。
影響
升級過程會影響主執行個體串連地址、唯讀執行個體串連地址和讀寫分離串連地址的可用性,其中主執行個體串連地址、唯讀執行個體串連地址會出現30~120秒的服務不可用,讀寫分離串連地址會出現30秒的不可用。
操作步驟
訪問RDS執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列單擊資料庫代理。
在右側單擊升級到獨享代理。
說明請耐心等待升級完成。