使用keepalived做負載均衡後發現了乙個問題
作為realserver的redis伺服器上有許多開啟的監聽連線長久時間的不關閉
做個測試,檢查下問題的所在
初步判斷是和客戶端使用redis鏈結的方式有關
其次是由於網路波動造成的連線中斷,由於keepalived的原因無法關閉realserver上被中斷的tcp連線
以下實驗均沒有在redis設定客戶端連線超時時間
連線池模式
連線池模式下redis伺服器上連線數比較恆定,增長速度較慢
一、首先採用直連的方式,客戶端採用連線池方式,直接和redis伺服器通訊,通過製造異常和插拔網線強制中斷連線
a、正常通訊連線池模式:
開啟多個程序,然後關閉程序。如果redis設定了客戶端連線超時時間,則等待響應的時間超時。標定連線執行的正常狀態下變化。多程序,正常讀寫。停止**服務後,redis伺服器上的連線自動釋放。
b、不正常通訊連線池模式:
多程序,主動丟擲異常。停止**服務後,redis伺服器上的連線自動釋放。
c、不正常網路模式:
開啟多個程序,然後關閉程序,不丟擲異常。以插拔網線模擬網路波動。
(1)在插上網線後重啟**服務,redis伺服器上的連線自動釋放。
(2)重啟**服務後插上網線,redis伺服器上的連線不自動釋放。
二、通過keepalived的方式,客戶端採用連線池方式,直接和redis伺服器通訊,通過製造異常和插拔網線強制中斷連線
a、正常通訊連線池模式:
開啟多個程序,然後關閉程序。如果redis設定了客戶端連線超時時間,則等待響應的時間超時。標定連線執行的正常狀態下變化。多程序,正常讀寫。停止**服務後,redis伺服器上的連線自動釋放。
b、不正常通訊連線池模式:
多程序,主動丟擲異常。停止**服務後,redis伺服器上的連線自動釋放。
c、不正常網路模式:
(1)在插上網線後重啟**服務,redis伺服器上的連線自動釋放。
(2)重啟**服務後插上網線,redis伺服器上的連線不自動釋放。
非連線池模式
此模式下redis伺服器上連線數增長快速
一、首先採用直連的方式,客戶端採用連線池方式,直接和redis伺服器通訊,通過製造異常和插拔網線強制中斷連線
a、正常通訊連線池模式:
開啟多個程序,然後關閉程序。如果redis設定了客戶端連線超時時間,則等待響應的時間超時。標定連線執行的正常狀態下變化。多程序,正常讀寫。停止**服務後,redis伺服器上的連線自動釋放。但是不重啟**服務的話連線會一直保持
b、不正常通訊連線池模式:
多程序,主動丟擲異常。停止**服務後,redis伺服器上的連線自動釋放。
c、不正常網路模式:
開啟多個程序,然後關閉程序,不丟擲異常。以插拔網線模擬網路波動。
(1)在插上網線後重啟**服務,redis伺服器上的連線自動釋放。
(2)重啟**服務後插上網線,redis伺服器上的連線不自動釋放。
二、通過keepalived的方式,客戶端採用連線池方式,直接和redis伺服器通訊,通過製造異常和插拔網線強制中斷連線
a、正常通訊連線池模式:
開啟多個程序,然後關閉程序。如果redis設定了客戶端連線超時時間,則等待響應的時間超時。標定連線執行的正常狀態下變化。多程序,正常讀寫。停止**服務後,redis伺服器上的連線自動釋放。但是不重啟**服務的話連線會一直保持
b、不正常通訊連線池模式:
多程序,主動丟擲異常。停止**服務後,redis伺服器上的連線自動釋放。
c、不正常網路模式:
(1)在插上網線後重啟**服務,redis伺服器上的連線自動釋放。但是會有少數幾個釋放不掉
(2)重啟**服務後插上網線,redis伺服器上的連線不自動釋放。
結論:
1.redis客戶端最好使用連線池模式
2.網路波動會造成大量連線進入半連線狀態,長久處於監聽狀態
3.在redis服務端需要對客戶端連線設定超時時間
4.redis客戶端的dispose方法似乎是無效的
基於Keepalived的MySQL高可用
keepalived負責的是故障轉移,至於故障轉以後的節點之間資料的一致性問題依賴於具體的複製模式。不管是主從 一主多從還是雙主 集群節點個數 主從具體的模式無關 常規複製,半同步複製,gtid複製,多執行緒複製,甚至可以是mgr 都沒有直接的關係。個人認為,mysql高可用方向,mgr 自動故障轉...
基於keepalived雙主模型的高可用LVS
背景知識 keepalived keepalived的作用是檢測web伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,keepalived將檢測到,並將有故障的web 伺服器從系統中剔除,當web伺服器工作正常後keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,...
keepalived的工作原理
目錄 keepalived 的介紹 keepalived 三個模組 vrrp 虛擬路由冗餘協議 keepalived 兩種模式 keepalived 的實現 由於工作中有用到keepalived 服務簡單記錄一下keepalived 簡單的原理 1.core 負責主程序的啟動維護,和全域性配置檔案的...