您的方法是一种通过将调用重定向到另一台服务器的静态负载平衡。所有后续调用都可能使用此其他服务器或再次发送到负载均衡器以进行重定向。
实现取决于系统的实现。负载均衡器最适合没有会话状态的独立请求。您需要在“结束”服务器之间同步会话状态。或者使用共享会话存储向所有服务器提供会话状态。
HTTP 服务器负载平衡有一个简单而透明的解决方案。您可以使用 nginx 服务器的负载平衡模块 ( http://nginx.org/en/docs/http/load_balancing.html )。这可用于 HTTP 和 HTTPS 请求。如果负载增加,它可能会动态扩展额外的服务器。您需要编辑 nginx 配置并重新启动服务器。这对现有连接是透明的。并且 nginx 不会导致更改域名或主机名的问题。
其他协议需要客户端和服务器的一些支持。如果客户端和服务器之间有专门的设备,负载平衡可能是透明的。或者通信协议需要支持连接重定向。
编辑:负载平衡也可以通过 DNS 循环实现。每个 DNS 查找调用都会返回相同域名的另一个 IP 地址。客户端选择一个 IP 并连接到该服务器。另一个客户端可以使用下一个 IP。地址栏名称始终相同。
例子:
Non-authoritative answer:
Name: www.google.com
Addresses: 2a00:1450:4001:80f::1010
173.194.116.209
173.194.116.210
173.194.116.212
173.194.116.211
173.194.116.208
Non-authoritative answer:
Name: www.google.com
Addresses: 2a00:1450:4001:80f::1010
173.194.116.210
173.194.116.212
173.194.116.211
173.194.116.208
173.194.116.209
Non-authoritative answer:
Name: www.google.com
Addresses: 2a00:1450:4001:80f::1010
173.194.116.212
173.194.116.211
173.194.116.208
173.194.116.209
173.194.116.210
IP 地址范围旋转。大多数 HTTP 负载均衡器作为透明负载均衡器工作,如 nginx 或其他反向代理实现。我认为重定向负载均衡器更像是一种低技术实现。
TCP/IP 不是协议。它是用于传输实现特定通信协议的数据的传输层。而 TCP/IP 本身是网络组件的协议。但不是应用程序。您可以查看https://en.wikipedia.org/wiki/OSI_model。