在.NET套接字服务器中重定向TCP NetworkStream流量

在.NET套接字服务器中重定向TCP NetworkStream流量

问题描述:

我需要在C#.NET中构建负载平衡器。我需要根据一些标准将请求路由到后端.NET Tcp套接字服务器的数组。在.NET套接字服务器中重定向TCP NetworkStream流量

.NET暴露重定向流量的方式有哪些?是否有某种方法可以动态地进行端口转发(即目标主机根据请求而改变的地方)?

任何信息非常感谢。谢谢。

编辑:我想写一个自定义的负载平衡器,所以我应该说编程动态端口转发。我试图用客户软件/算法将客户端请求重定向到后端机器。

全面建设小康工作负载均衡器非常类似于建立一个代理,但更为复杂 - 没有一个是简单的任务因为你将不得不在两个方向上理解和处理几个协议......

我会建议使用一个现有的库... ...以下是有关代理的链接,我认为这将有助于构建负载平衡器:

另一个有用的基础可能是SSH文库 - 一些包括对隧道的支持这是你的一部分需要

恕我直言,.NET可能不是用于在TCP级别的负载平衡器的第一选择,因为这需要最高性能......根据你的具体情况,甚至可能需要构建一个内核模块来达到可接受的性能水平 - 构建内核模块对于.NET来说是不可能的,只有在C/C++中(或者对于那些真的想要得到污垢Ÿ汇编)...

备注:

,如果你可以改变客户端则可能更有效的选择,以达到你想要的...你会实现一个中心服务做“逻辑负荷 - 平衡“,客户要求这个*服务,他们应该连接到后端,然后直接连接...完成后,他们只是向*服务发出信号......它甚至可能是更好的从后端设备/服务获得“负载信息”,并基于该计算...

.NET不包含任何内置的负载平衡或端口转发功能。你将不得不自己写这个或者找一个能做到的图书馆。

Win 2008 has NLB ..但有关(NLB)的问题更适合 ServerFault

+0

通常简单的端口转发会去ServerFault,但在我的情况,我想建立一个负载平衡器。我忽略提及这一点,所以我会更新我的帖子。谢谢你的提示。 – kmarks2 2012-04-03 14:31:23

+1

然后前两句适用。 – 2012-04-03 14:37:08

一些上面列出的这些产品将有可能让你根据请求的各种属性做自定义重定向。

例如WinGate的具有几个代理(http或通用TCP映射),其可以使用JScript或其它选项来改变在每个请求或每个连接的基础目的地。