Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中TCP服务器间的互通_Java_Sockets_Tcp_Load Balancing - Fatal编程技术网

Java中TCP服务器间的互通

Java中TCP服务器间的互通,java,sockets,tcp,load-balancing,Java,Sockets,Tcp,Load Balancing,我有一个应用程序,我在其中使用套接字编程,有这个图像场景。 尝试连接广播服务器的客户端数。 现在,我通过LVSLoad平衡器管理负载。因此,如图所示,假设200个客户端希望登录进行广播,它们将作为服务器1上的100个用户和服务器2上的另外100个用户分发。客户端将使用TCP连接连接到服务器 现在我在arraylist中维护服务器端的用户信息,这些信息将存储在堆内存中,现在的问题是,客户端是否希望向所有登录的用户广播,但特定的客户端登录到了服务器1。所以客户端将无法从服务器2广播另外100个用户。

我有一个应用程序,我在其中使用套接字编程,有这个图像场景。 尝试连接广播服务器的客户端数。 现在,我通过LVSLoad平衡器管理负载。因此,如图所示,假设200个客户端希望登录进行广播,它们将作为服务器1上的100个用户和服务器2上的另外100个用户分发。客户端将使用TCP连接连接到服务器

现在我在arraylist中维护服务器端的用户信息,这些信息将存储在堆内存中,现在的问题是,客户端是否希望向所有登录的用户广播,但特定的客户端登录到了服务器1。所以客户端将无法从服务器2广播另外100个用户。因为两台服务器都不知道彼此的状态


请建议我以您想要的任何方式解决此问题。

让两台服务器彼此登录,并安排广播转发到另一台服务器,然后转发到该服务器的客户端。

将消息发送到其他服务器,让它们将消息发送给其用户?如果我们添加更多,此逻辑可能会失败服务器,为什么?如果每台服务器都可以访问所有服务器的列表,并登录到除自身以外的其他每台服务器,则tht应该可以工作,不是吗?即使有128台服务器,用于服务器间通信的每台服务器仍然只有128个客户端连接,这对于“真正的”客户端来说已经足够了。或者,您可以菊花链连接服务器通信,以便每个服务器只使用一个客户端连接。这些服务器在本地局域网上,对吗?您可以使用UDP广播或TCP多播来分发广播。也许您的服务器插在同一背板上,并且有一条高速总线?我不知道..或者创建一个主服务器,所有服务器在其中登录,并将请求分发到连接的客户端服务器谢谢解决方案,它也应该工作。但当我从客户机服务器收到请求时,服务器正在为每个请求创建新线程。因此,对于一个客户端,只有一个线程。继续下面的评论现在假设我将在那里实现您的逻辑,我要做的是创建一个多线程以登录到另一个服务器,考虑到它唯一添加的服务器总数为2。因此线程的数量增加了一倍,这将使服务器的执行能力减少了一倍。i、 e.假设我的服务器能够同时处理40k个用户请求,它现在减少到20k个。考虑到这一点,再添加一个服务器进行负载平衡是没有用的。也许我错过了什么,请考虑我的观点,让我们来讨论一下。