mysql連線是否會重試 資料庫映象連線重試演算法

2021-10-18 23:54:35 字數 1194 閱讀 7927

連線重試演算法,資料庫整體連線重試演算法

不論是初次與會議建立連線,還是中斷已建立連線後重新連線,資料訪問介面都遵循連線重試演算法。開啟連線之後,還需要一些時間完成登入的步驟。

預設的登入超時期限為15秒,建議登入超時期限至少為5秒。如果指定較短的超時期限,則可能導致連線嘗試失敗。

當初始夥伴名稱和故障轉移夥伴名稱均可用時,客戶端會交替使用這兩個名稱,反覆嘗試重新連線到伺服器。

在第一輪連線嘗試中,資料訪問介面將首先嘗試使用初始夥伴名稱,如果連線嘗試失敗(或者重試時間過期)且未超過登入期限,則資料訪問介面還會嘗試使故障轉移夥伴名稱。如果連線嘗試仍然失敗,則進行第二輪連線嘗試,還是首先嘗試使用初始夥伴名稱,如果嘗試失敗(且未超過登入期限)則使用故障轉移夥伴名稱。如此反覆,直到登入期限超時。

第一輪每次重試時間為總登入時間的 8%;後續每輪依次遞增 8%。以15秒的登入超時期限為例,前 4 輪中分配的重試時間如下:

輪次比例

每次嘗試重試的時間

8 %1.2 秒

16 %

2.4 秒

24 %

3.6 秒

32 %

4.8 秒

下圖說明了15秒時的重試時間。

在上例中,前三輪連線嘗試耗時 14.4 秒,在登入期限超時之前僅剩下 0.6 秒的時間。在這種情況下,第4輪僅允許使用初始夥伴名稱進行最後的快速連線嘗試。

3.7.3 故障轉移期間的重試延遲時間

如果客戶端嘗試連線到正在進行故障轉移的夥伴,則此夥伴會立即做出響應,表明它處於不活動的狀態。在這種情況下,每輪連線嘗試都會比分配的重試時間更短暫,從而導致在登入期限超時之前會發生多輪連線嘗試,這會增加夥伴在故障轉移期間的負載。因此,這種情況下,資料訪問介面將在每輪嘗試之後增加短暫的重試延遲時間。

在第一輪之後,延遲時間為 100 毫秒。在接下來的3輪之後,重試延遲時間加倍,分別達到 200、400和800毫秒。由於最大的重試延時時間為1秒,因此第5輪及所有的後續輪次,重試延遲時間為1秒,直到連線嘗試成功或超時。

下圖說明了在手動故障轉移期間重試延遲時間對連線嘗試的影響。登入超時期限為15秒。

參考資料:

**:

資料庫映象連線重試演算法

不論是初次與會議建立連線,還是中斷已建立連線後重新連線,資料訪問介面都遵循連線重試演算法。開啟連線之後,還需要一些時間完成登入的步驟。預設的登入超時期限為15秒,建議登入超時期限至少為5秒。如果指定較短的超時期限,則可能導致連線嘗試失敗。當初始夥伴名稱和故障轉移夥伴名稱均可用時,客戶端會交替使用這兩...

MySQL資料庫連線

一 mysql 連線本地資料庫,使用者名為 root 密碼 123 注意 p 和 123 之間不能有空格 c mysql h localhost u root p123 二 mysql 連線遠端資料庫 192.168.0.201 埠 3306 使用者名為 root 密碼 123 c mysql h ...

連線MySql資料庫

color olive 以myeclipse為例,要連線mysql資料庫首先要安裝mysql。在這就帶過 不予介紹了。color 1.載入驅動 class.forname com.mysql.jdbc.driver 或者new 2.獲得連線 connection conn drivermanager...