Java 负载平衡服务器,我如何实现它?
我在谷歌上搜索负载平衡,但我能找到的唯一东西是工作原理,目前它对我来说是“简单”的部分。但如何实现这一点的例子却为零 我有几个关于负载平衡的问题:Java 负载平衡服务器,我如何实现它?,java,servlets,network-programming,load-balancing,internal-load-balancer,Java,Servlets,Network Programming,Load Balancing,Internal Load Balancer,我在谷歌上搜索负载平衡,但我能找到的唯一东西是工作原理,目前它对我来说是“简单”的部分。但如何实现这一点的例子却为零 我有几个关于负载平衡的问题: 我有一个域(example.com),我在它后面有一个负载平衡服务器(我们称它为a),根据理论,它将要求客户端关闭与a的连接,并连接到B,a子服务器,并与B进行请求。客户端是否会在web浏览器中停止看到“example.com/page.html”在地址栏中,开始看到“B_ip_address/page.html” 如何从头开始实现简单的负载平衡器?
因此,问题2、3和4涉及负载平衡协议,而第一个问题涉及域名连接到负载平衡器的方式以及潜在的后果。您的方法是通过将调用重定向到另一台服务器实现静态负载平衡。以下所有调用都可能使用此其他服务器,或者再次发送到负载平衡器进行重定向 实现取决于系统的实现。负载平衡器最适合于没有会话状态的独立请求。您需要在“结束”服务器之间同步会话状态。或者使用共享会话存储向所有服务器提供会话状态 有一个简单而透明的HTTP服务器负载平衡解决方案。您可以使用nginx服务器()的负载平衡模块。这可用于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本身是网络组件的协议。但不是应用程序。你可以查一下