Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 负载平衡服务器,我如何实现它?_Java_Servlets_Network Programming_Load Balancing_Internal Load Balancer - Fatal编程技术网

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” 如何从头开始实现简单的负载平衡器?

我在谷歌上搜索负载平衡,但我能找到的唯一东西是工作原理,目前它对我来说是“简单”的部分。但如何实现这一点的例子却为零

我有几个关于负载平衡的问题:

  • 我有一个域(example.com),我在它后面有一个负载平衡服务器(我们称它为a),根据理论,它将要求客户端关闭与a的连接,并连接到B,a子服务器,并与B进行请求。客户端是否会在web浏览器中停止看到“example.com/page.html”在地址栏中,开始看到“B_ip_address/page.html”

  • 如何从头开始实现简单的负载平衡器?我怀疑的是HTTP部分。我是否需要向客户端发送一些特定的消息或消息集,以使客户端与我断开连接并连接到子服务器

  • 关于HTTP以外的低级协议,例如TCP/IP,是否有任何标准数据包告诉客户机他刚刚连接到负载平衡器服务器,现在他需要连接到xxx.xxx.xxx.xxx来执行请求

  • 最常用的方法是什么?(1) 客户端连接到负载平衡服务器,并要求客户端直接连接到其中一个子服务器,或者(2)负载平衡服务器开始以透明方式桥接从客户端到子服务器的所有流量,反之亦然


  • 因此,问题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本身是网络组件的协议。但不是应用程序。你可以查一下