我需要在C#.NET中構建負載平衡器。我需要根據一些標準將請求路由到後端.NET Tcp套接字服務器的數組。在.NET套接字服務器中重定向TCP NetworkStream流量
.NET暴露重定向流量的方式有哪些?是否有某種方法可以動態地進行端口轉發(即目標主機根據請求而改變的地方)?
任何信息非常感謝。謝謝。
編輯:我想寫一個自定義的負載平衡器,所以我應該說編程動態端口轉發。我試圖用客戶軟件/算法將客戶端請求重定向到後端機器。
我需要在C#.NET中構建負載平衡器。我需要根據一些標準將請求路由到後端.NET Tcp套接字服務器的數組。在.NET套接字服務器中重定向TCP NetworkStream流量
.NET暴露重定向流量的方式有哪些?是否有某種方法可以動態地進行端口轉發(即目標主機根據請求而改變的地方)?
任何信息非常感謝。謝謝。
編輯:我想寫一個自定義的負載平衡器,所以我應該說編程動態端口轉發。我試圖用客戶軟件/算法將客戶端請求重定向到後端機器。
全面建設小康工作負載均衡器非常類似於建立一個代理,但更爲複雜 - 沒有一個是簡單的任務因爲你將不得不在兩個方向上理解和處理幾個協議......
我會建議使用一個現有的庫... ...以下是有關代理的鏈接,我認爲這將有助於構建負載平衡器:
另一個有用的基礎可能是SSH文庫 - 一些包括對隧道的支持這是你的一部分需要
恕我直言,.NET可能不是用於在TCP級別的負載平衡器的第一選擇,因爲這需要最高性能......根據你的具體情況,甚至可能需要構建一個內核模塊來達到可接受的性能水平 - 構建內核模塊對於.NET來說是不可能的,只有在C/C++中(或者對於那些真的想要得到污垢Ÿ彙編)...
備註:
,如果你可以改變客戶端則可能更有效的選擇,以達到你想要的...你會實現一箇中心服務做「邏輯負荷 - 平衡「,客戶要求這個中央服務,他們應該連接到後端,然後直接連接...完成後,他們只是向中央服務發出信號......它甚至可能是更好的從後端設備/服務獲得「負載信息」,並基於該計算...
.NET不包含任何內置的負載平衡或端口轉發功能。你將不得不自己寫這個或者找一個能做到的圖書館。
Win 2008 has NLB ..但有關(NLB)的問題更適合
ServerFault
一些上面列出的這些產品將有可能讓你根據請求的各種屬性做自定義重定向。
例如WinGate的具有幾個代理(http或通用TCP映射),其可以使用JScript或其它選項來改變在每個請求或每個連接的基礎目的地。
通常簡單的端口轉發會去ServerFault,但在我的情況,我想建立一個負載平衡器。我忽略提及這一點,所以我會更新我的帖子。謝謝你的提示。 – kmarks2 2012-04-03 14:31:23
然後前兩句適用。 – 2012-04-03 14:37:08