文件首頁
MySQL Connector/J 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.2MB
PDF (A4) - 1.2MB


MySQL Connector/J 開發人員指南  /  多主機連線  /  設定使用 X DevAPI 連線的伺服器容錯移轉

9.2 設定使用 X DevAPI 連線的伺服器容錯移轉

使用 X Protocol 時,Connector/J 支援用戶端容錯移轉功能,用於建立工作階段。如果在連線 URL 中指定多個主機,當 Connector/J 無法連線到列出的主機時,會嘗試連線到另一個主機。以下是用於設定用戶端容錯移轉的 X DevAPI URL 範例

mysqlx://sandy:mypassword@[host1:33060,host2:33061]/test

設定用戶端容錯移轉後,當連線建立失敗時,Connector/J 會持續嘗試連線到主機清單中的主機。嘗試連線主機的順序如下

  • 對於連線 URL 中每個主機都設定了 priority 屬性的連線, 會按照主機設定的優先順序嘗試主機,優先順序由 0 到 100 之間的任何數字指定,數字越大表示連線的優先順序越高。例如

    mysqlx://sandy:mypassword@[(address=host1:33060,priority=2),(address=host2:33061,priority=1)]/test

    在這個範例中,建立新工作階段時,會永遠先嘗試 host1,再嘗試 host2

    優先順序應該要設定給所有主機或都不設定。

  • 對於連線 URL 中每個主機都沒有設定 priority 屬性的連線, 會以隨機順序一個接一個地嘗試主機。

請注意,X DevAPI 的伺服器容錯移轉功能僅允許在 Connector/J 嘗試建立連線時進行容錯移轉,而不是在連線已建立後的作業期間進行。

使用 X DevAPI 的連線池。當搭配 X DevAPI 使用連線池時,Connector/J 會追蹤它無法連線的任何主機,並且在失敗後的短暫等待時間內,避免在建立或擷取 Session 時連線到該主機。但是,如果已嘗試所有其他主機,則會重新嘗試那些被排除的主機,而無需等待。一旦嘗試了所有主機並且無法建立任何連線,Connector/J 會擲回 com.mysql.cj.exceptions.CJCommunicationsException 並傳回訊息 無法連線到任何目標主機

使用 DNS SRV 設定 X DevAPI 的伺服器容錯移轉

詳細資訊請參閱章節 6.14,「支援 DNS SRV 記錄」