Connector/J 支援使用 DNS SRV 記錄進行連線。如需 MySQL 中 DNS SRV 支援的相關資訊,請參閱使用 DNS SRV 記錄連線至伺服器。
當多個 MySQL 執行個體為您的應用程式提供相同的服務時,可以使用 DNS SRV 記錄來提供容錯移轉、負載平衡和複寫服務。它們消除了用戶端在連線字串中識別每個可能主機的需求,或讓連線由額外的軟體元件處理的需求。以下是 Connector/J 對 DNS SRV 記錄支援的摘要
-
連線 URL 中的這些新結構描述可啟用 DNS SRV 記錄支援
jdbc:mysql+srv:
用於使用 DNS SRV 記錄的普通和基本容錯移轉 JDBC 連線。jdbc:mysql+srv:loadbalance:
用於使用 DNS SRV 記錄的負載平衡 JDBC 連線。jdbc:mysql+srv:replication:
用於使用 DNS SRV 記錄的複寫 JDBC 連線。mysqlx+srv:
用於使用 DNS SRV 記錄的 X DevAPI 連線。
-
除了在連線 URL 中使用新的結構描述之外,還可以使用兩個新的連線屬性
dnsSrv
和xdevapi.dns-srv
,分別針對 JDBC 和 X DevAPI 連線啟用或停用 DNS SRV 記錄支援。例如,此連線 URL 可啟用 DNS SRV 記錄支援mysqlx://johndoe:secret@_mysql._tcp.mycompany.local/db?xdevapi.dns-srv=true
但是,將 DNS SRV 結構描述與設定為
false
的 DNS SRV 連線屬性搭配使用會導致錯誤;例如mysqlx+srv://johndoe:secret@_mysql._tcp.mycompany.local/db?xdevapi.dns-srv=false # The connection URL causes Connector/J to throw an error
以下是 Connector/J 對 DNS SRV 記錄支援的一些需求和限制
如果 DNS SRV 連線的連線 URL 中指定了多個主機(使用
jdbc:mysql+srv:replication
建立的複寫設定除外,其需要指定一個來源和一個複本伺服器),Connector/J 會擲回例外狀況。如果 DNS SRV 連線的連線 URL 中指定了連接埠號碼,Connector/J 會擲回例外狀況。
DNS SRV 記錄僅支援 TCP/IP 連線。如果您嘗試啟用 Windows 具名管道連線的 DNS SRV 記錄支援,Connector/J 會擲回例外狀況。
用於負載平衡和容錯移轉的 DNS SRV 記錄支援。 對於負載平衡和容錯移轉連線,Connector/J 會使用 DNS SRV 記錄的 priority
欄位來決定主機連線嘗試的優先順序。
用於連線集區的 DNS SRV 記錄支援。 在 X DevAPI 連線集區設定中,Connector/J 會定期重新查詢 DNS SRV 記錄,並優雅地淘汰任何主機不再出現在記錄中的連線,並在其主機重新出現在記錄中時將連線重新納入集區。
查閱 DNS SRV 記錄。 使用者有責任提供完整服務主機名稱;Connector/J 不會附加任何字首,也不會驗證主機名稱結構。以下是有效服務主機名稱模式的範例
foo.domain.local
_mysql._tcp.foo.domain.local
_mysqlx._tcp.foo.domain.local
_readonly._tcp.foo.domain.local
_readwrite._tcp.foo.domain.local
如需詳細資訊,請參閱使用 DNS SRV 記錄的連線在X DevAPI 使用者指南中。