作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个项目要处理,我需要用 Java 构建一些客户端-服务器应用程序,我可以在其中发送消息和其他内容。该项目的目标之一是处理故障转移。当客户端连接到服务器并且服务器挂掉时,它会自动连接到备份服务器。我想做的不是必需的,但我想实现一个负载平衡器,以便多个客户端连接到首选服务器。
客户端和服务器之间的连接必须使用 TCP 套接字。
这是网络架构的示意图:
客户端连接到负载均衡器(udp 或 tcp,我不知道这种情况下的最佳选择)。
负载均衡器决定客户端应该连接哪个服务器(最空的那个)
客户端与指定服务器建立TCP连接
我的问题是:
负载均衡器应该如何工作才能让客户端连接到特定服务器?将服务器的信息(ip,端口)发送给客户端,客户端用新的 ip 创建另一个套接字? (蓝线)。
或者是否有一种方法可以让负载平衡器连接这两个端点(服务器 #1 <-> 客户端 #1),而不必向客户端发送信息?
PS:我问你是因为似乎没有必要让每个客户端都必须创建 2 个套接字来连接到服务器(第一个套接字黑线,第二个套接字蓝线)
最佳答案
我认为在客户端将信息发送到负载均衡器之后,最好是负载均衡器将该信息发送到它决定的服务器,而不是将某些信息发回给客户端,然后客户端再次连接到服务器
关于java - 负载均衡器、套接字和 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139709/
我是一名优秀的程序员,十分优秀!