升級共享代理為獨享型代理
為避免共享代理的穩(wěn)定性、可擴展性和性能問題,阿里云RDS MySQL推出獨享型代理功能,已開啟共享代理的實例可以升級為獨享型代理。
關(guān)于RDS數(shù)據(jù)庫代理的使用問題和更多相關(guān)信息,歡迎加入用戶釘釘群(106730000316)進行咨詢、反饋和交流 。
2021年04月01日起,RDS MySQL共享代理功能將停止更新維護,僅提供產(chǎn)品服務(wù)技術(shù)支持,建議您盡快升級到獨享型代理。詳細通知,請參見【通知】2021年04月01日起共享代理功能停止更新維護。
共享代理暫不支持直接升級至通用型代理,您可以先升級至獨享型代理后,再變更代理類型至通用型代理。更多信息,請參見變更代理配置、通用型代理和獨享型代理。
升級特惠
現(xiàn)在升級獨享型代理,可在一定期限內(nèi)免費使用獨享型代理(額外新增代理個數(shù)需要收費)。不同付費類型的主實例優(yōu)惠內(nèi)容如下:
按量付費:自升級日起,免費使用獨享型代理一年。
包年包月:自升級日起,免費使用獨享型代理至少一年,取決于主實例的到期時間。
主實例到期時間距離升級日大于一年,則您可免費使用獨享型代理直到實例到期。
說明如果您通過續(xù)費延長了主實例到期時間,仍然以續(xù)費前的主實例到期時間為準。
主實例到期時間距離升級日小于一年,則您可免費使用獨享型代理一年。
注意事項
優(yōu)惠期限內(nèi)調(diào)整獨享型代理數(shù)量,只有超過默認數(shù)量的獨享型代理才需要額外付費。例如系統(tǒng)默認創(chuàng)建6個獨享型代理,無論您如何調(diào)整,只要代理數(shù)量不超過6個就無需額外付費。但如果您一共創(chuàng)建了7個獨享型代理,則需要為多出的1個獨享型代理單獨付費。
優(yōu)惠期限內(nèi)關(guān)閉獨享型代理則優(yōu)惠即時結(jié)束,再次開啟需要正常付費。
前提條件
主實例與只讀實例為如下版本:
MySQL 5.7高可用系列(內(nèi)核小版本20190925或以上)。
MySQL 5.6高可用系列(內(nèi)核小版本20200229或以上)。
說明如果升級時出現(xiàn)
current db not support db proxy
錯誤提示,表示您需要先升級內(nèi)核小版本。實例已開啟共享代理。 您可以在數(shù)據(jù)庫代理頁面查看是否為共享代理。
費用
升級為獨享型代理時,系統(tǒng)會根據(jù)RDS實例(主實例及其只讀實例)總規(guī)格,計算出獨享型代理個數(shù),按小時付費。具體價格請參見數(shù)據(jù)庫獨享型代理費用說明。
背景信息
RDS MySQL的讀寫分離功能基于代理實現(xiàn)。部分存量MySQL 5.6、5.7實例的讀寫分離功能基于共享代理實現(xiàn),存在穩(wěn)定性風(fēng)險,建議升級為獨享型代理。相比共享代理,獨享型代理有以下優(yōu)勢:
穩(wěn)定性和隔離性更好。
性能更高。例如在數(shù)據(jù)庫不是瓶頸時,使用SysBench在OLTP場景測試,一個獨享型代理能夠提供20,000 QPS。
獨享型代理數(shù)量可擴展,方便擴容業(yè)務(wù)。
獨享型代理的性能可監(jiān)控,您可以根據(jù)監(jiān)控及業(yè)務(wù)規(guī)劃調(diào)整相應(yīng)的獨享型代理個數(shù),實時生效。
提供獨享型代理連接地址,應(yīng)用使用該地址后不用反復(fù)變更應(yīng)用內(nèi)的地址,減少維護成本,只要不釋放代理,代理連接地址可以永遠使用。例如您在大促時期開啟讀寫分離,大促結(jié)束后釋放只讀實例,關(guān)閉讀寫分離,也不用變更應(yīng)用內(nèi)的連接地址。
基于獨享型代理連接地址可以實現(xiàn)讀寫分離、短連接優(yōu)化、事務(wù)拆分等功能。
獨享型代理的詳情請參見什么是數(shù)據(jù)庫代理。
下文將介紹如何將存量的共享代理升級為獨享型代理。
注意事項
獨享型代理的連接模型是1:N(即您的一個連接會后端連接到主實例和所有只讀實例),建議開通獨享型代理后,主實例和只讀實例的連接數(shù)規(guī)格盡量一致,否則業(yè)務(wù)的連接數(shù)會受限于最小規(guī)格的實例連接數(shù)限制。
切換到獨享型代理后,新增只讀實例或重啟只讀實例時,只有新的連接的請求才會路由到新的只讀實例或重啟的只讀實例,老的連接請求不會路由過去。
主實例與只讀實例的參數(shù)max_prepared_stmt_count需要保持一致。
數(shù)據(jù)庫代理升級前后的連接地址均不會發(fā)生改變,但會造成虛擬IP(VIP)的變更,請盡量保證在您的應(yīng)用程序中使用連接地址進行連接,而不使用IP地址。
請及時清理客戶端DNS緩存。客戶端采用JVM的應(yīng)用,建議將JVM配置中的TTL設(shè)置為不超過60秒,可確保在連接地址的VIP地址發(fā)生變更時,應(yīng)用程序可以通過重新查詢DNS來接收和使用資源的新VIP地址。
說明JVM中設(shè)置TTL的方法請參見JDK官方文檔:Class InetAddress。
獨享型代理協(xié)議層默認啟用多語句(multi-statement)功能。若應(yīng)用層未開啟此功能且使用了多語句,則會導(dǎo)致SQL錯誤。請預(yù)先檢查并設(shè)置相應(yīng)的連接參數(shù),如在JDBC中添加
allowMultiQueries=true
。更多注意事項,請參見數(shù)據(jù)庫代理注意事項。
影響
升級過程會影響主實例連接地址、只讀實例連接地址和讀寫分離連接地址的可用性,其中主實例連接地址、只讀實例連接地址會出現(xiàn)30~120秒的服務(wù)不可用,讀寫分離連接地址會出現(xiàn)30秒的不可用。
操作步驟
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側(cè)導(dǎo)航欄單擊數(shù)據(jù)庫代理。
在右側(cè)單擊升級到獨享代理。
說明請耐心等待升級完成。