我在兩個數據中心之間有一個可以正常工作的cassandra集羣。每個DC有3個節點,複製因子爲3,READ/WRITE一致性爲LOCAL_QUORUM。來自f5負載平衡器的Cassandra多數據中心集羣健康檢查
當DC中的兩個節點關閉時,我想停止到特定DC的流量,因爲仲裁不再被滿足。我希望這可以通過我的應用程序(客戶端)來處理,即當本地法定人數不滿足時,連接到其他DC卡桑德拉,但從那裏不可能。
我們可以在f5負載平衡器上設置某種規則來達到這個目的嗎?
我在兩個數據中心之間有一個可以正常工作的cassandra集羣。每個DC有3個節點,複製因子爲3,READ/WRITE一致性爲LOCAL_QUORUM。來自f5負載平衡器的Cassandra多數據中心集羣健康檢查
當DC中的兩個節點關閉時,我想停止到特定DC的流量,因爲仲裁不再被滿足。我希望這可以通過我的應用程序(客戶端)來處理,即當本地法定人數不滿足時,連接到其他DC卡桑德拉,但從那裏不可能。
我們可以在f5負載平衡器上設置某種規則來達到這個目的嗎?
您可以在BIG-IP上設置外部監視器,以運行確定羣集運行狀況的腳本,然後對結果進行負載平衡。如果您使用BIG-IP 11.x +,則可以創建腳本並將其導入,並添加可能需要的所有參數。然後您創建一個監視器配置文件來調用該外部監視器。
如果你有DevCentral帳戶,看看這個頁面:
DevCentral Wiki: External Monitor
向下滾動,你會看到一噸的例子來蓄客。需要注意的例子是MySql監視器。這是我建議用於BIG-IP的集羣運行狀況檢查的路徑。
或者,您可以簡單地查詢尋找成功/失敗消息的網頁,因此如果您已經擁有集羣健康狀況頁面,則可以讓HTTP監視器驗證消息。您可以自定義接收字符串以查找特定內容或使用正則表達式查找任何特定字符串(例如clusterFailure或whatnot)。從那裏,你可以做出適當的LB決定。我運行了一個類似的監視器來讀取一個nagios狀態頁面,如果它讀取了特定消息的故障,它將從該節點連接LB。
這是有幫助的。我想我必須使用腳本,因爲對於cassandra集羣,我們沒有任何集羣健康頁面。 – user3081593
我只是想,如果你已經有一些其他監控解決方案的HTTP監視器可以讀取,可能會工作。不是乾淨的...腳本是正確的方法。讀取一個關閉網頁的HTTP監視器是一種懶惰的方式。讓我知道你是否還有其他問題。此外,您可以向DevCentral網站發佈問題,並且有人應該可以提供幫助。 – Chase
我們沒有使用任何監控解決方案,目前我還沒有任何進一步的問題。感謝您的建議。 – user3081593