有没有一个好的开源的抽象负载均衡库适用于Java?

10

我正在寻找一个开源库,它将允许对任意形式的节点进行编程负载平衡 - 因此不做任何关于HTTP或其他内容的假设,只需对对象进行方法调用。理想情况下,它应该提供以下功能:

  • 平等地平衡负载
  • 如果对节点的调用引发异常,则在另一个节点上重试
  • 如果对它的调用失败,则将节点移动到“故障”状态,并不再对其进行调用
  • 具有一种机制,可以对所有节点(损坏和活动的)进行后台ping操作,当它们返回时将损坏的节点恢复为活动状态,并主动将活动节点移到损坏状态(如果它们失败)

我觉得这应该已经存在了,但是搜索还没有发现它。


通常使用F5或Ace在硬件上完成此操作。 - duffymo
我认为在这种情况下这不太实际 - 我们正在使用一个现有的API,该API直接通过TCP/IP套接字连接到远程节点,并且没有F5或ace。有多个节点,我们需要处理故障转移等问题。最简单的解决方案似乎是软件负载均衡器。 - Robert Elliot
3个回答

4
考虑使用Apache Camel库。该库有一个灵活的负载均衡器,并且具有各种组件,因此您不必局限于特定的协议或服务实现。使用Camel Bean组件,您甚至可以对POJO方法调用进行负载平衡。

1
您也可以看看JavaSpaces。那里的范式是一个简单的队列。最不活跃的处理器最有可能接下来从队列中取出下一个项。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接