两个Java网络服务器如何共享一个IP

两个Java网络服务器如何共享一个IP,java,jakarta-ee,networking,network-protocols,Java,Jakarta Ee,Networking,Network Protocols,我想创建共享一个IP地址的Java网络服务器。类似于集群: 有没有类似的解决方案 另外,它们必须作为一个集群工作。如果一台服务器出现故障,第二台服务器应该处理流量。只需创建独立的tcp/ip服务器,在不同的端口上侦听(当然,ip地址将与您的要求相同)显然,解决方案是尝试在Piranha层后面构建Java服务器;i、 e.用Java在“real server 1”、“real server 2”等平台上实现应用服务 我非常确定,您不能在(纯)Java中实现类似食人鱼的解决方案。IP级负载平衡是在

我想创建共享一个IP地址的Java网络服务器。类似于集群:

有没有类似的解决方案


另外,它们必须作为一个集群工作。如果一台服务器出现故障,第二台服务器应该处理流量。

只需创建独立的tcp/ip服务器,在不同的端口上侦听(当然,ip地址将与您的要求相同)

显然,解决方案是尝试在Piranha层后面构建Java服务器;i、 e.用Java在“real server 1”、“real server 2”等平台上实现应用服务

我非常确定,您不能在(纯)Java中实现类似食人鱼的解决方案。IP级负载平衡是在“director”的OS内核(我想)的网络堆栈中实现的。这排除了(纯)Java,原因有两个:

  • 将Java代码放在内核中是不切实际的

  • 要在Java的用户空间中实现这一点,需要使用本机代码来读取和写入原始网络数据包。这在纯Java中是不可能的

此外,如果控制器层不是用Java实现的,无论是纯Java还是其他语言,都有可能获得更好的网络吞吐量


当然,还有其他方法来实现负载平衡…

是的,但我希望两台服务器提供相同的web服务(例如网页)?我不确定“相同”web服务是什么意思。如果两台服务器调用同一个web服务实例,那么您的两台服务器都将使用URL/URLConnection对象来调用该web服务。那么您想使用两台服务器进行负载平衡/故障转移吗?