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

时间:2013-11-28 12:34:33

标签: java java-ee networking network-protocols

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

http://www.linuxvirtualserver.org/docs/ha/piranha.jpg

有没有类似的解决方案?

P.S他们必须作为一个集群工作。如果一台服务器停机,第二台服务器应处理流量。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

显而易见的解决方案是尝试在Piranha层后面构建Java服务器;即在“真实服务器1”,“真实服务器2”,以及Java等实现应用服务

我很确定你不能在(纯)Java中实现类似Piranha的解决方案。 IP级负载平衡在“导演”的OS内核(我认为)中的网络堆栈中实现。排除(纯)Java有两个原因:

  • 将Java代码放入内核是不切实际的。

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

此外,如果导演层没有用Java,纯粹或其他方式实现,那么你可能会获得更好的网络吞吐量。

当然,还有其他方法来进行负载平衡......