不確定這個問題是否需要在另一個堆棧交換站點中提出,如果有的話請相應地遷移!備用機制 - 最佳方法?
我有三個不同類型的服務器的連接。這些可以在屬性文件中配置。
說有三個服務器:
Server1
Server2
Server3
在Properties
文件,我已經配置如下:
ServerPref1 = Server1
ServerPref2 = Server2
ServerPref3 = Server3
在代碼級別,我的回退機制如下:
private static void getServerAndConnect() {
try {
connect(Properties.ServerPref1);
} catch (ServerException se1) {
try {
connect(Properties.ServerPref2);
} catch (ServerException se2) {
try {
connect(Properties.ServerPref3);
} catch (ServerException se3) {
// Unable to connect
}
}
}
}
的connect()
方法會拋出定製ServerException
,如果UNAB連接到服務器。
一切按預期工作。
我的問題是:這是實現回退機制的正確方法還是最佳方法?
我不知道,如果你的問題是,相對於_your requirements_在回退足夠清晰。是的,這足以連接到第一臺可用的服務器。但你如何?處理服務器B在連接到服務器後變得不可用?也許你想重新連接到服務器A然後(之前沒有)? – 2014-09-22 05:36:54
如果您嘗試兩次連接到服務器,請將其從「池」中刪除,您可能需要添加更多功能。我會建議尋找ESB/Apache駱駝而不是實施你自己的解決方案 – 2014-09-22 05:40:12