0

我正在从事一个具有以下要求的项目:

  1. 在多个后端服务器上执行基于粘性的负载平衡(基于 SOAP 会话 ID)。
  2. 可以插入我自己的基于自定义的负载均衡器。
  3. 易于编写和部署。
  4. 一个中央配置文件(可能是一个 XML),用于处理所有后端服务器。
  5. 从此配置文件中轻松提取节点(可能使用 xpath)。

我尝试使用骆驼一段时间,但无法使用它执行某些任务。所以想试试阿卡。akka 有可能满足上述要求吗?

如果是这样,akka 或代理示例中是否有负载平衡示例?

非常感谢一些反馈。

4

1 回答 1

2

你可以用 Akka 做所有你描述的事情。

你没有提到你正在使用什么语言,Scala 或 Java。我已经包含了 Scala 文档的链接。

在你对 Akka 做任何事情之前,你必须阅读文档并了解 Akka 是如何工作的。

http://doc.akka.io/docs/akka/2.0.3/

这样做,您会发现 Akka 非常适合您所描述的项目,但需要注意一些小问题。

阅读文档后,以下答案应该很有意义。

在多个后端服务器上执行基于粘性的负载平衡(基于 SOAP 会话 ID)。

负载平衡已经是框架的一部分(在 Akka 中称为路由http://doc.akka.io/docs/akka/2.0.3/scala/routing.html)和远程处理(http://doc.akka.io /docs/akka/2.0.3/scala/remoting.html) 将负责后端服务器。您可以轻松地将两者结合起来。

据我所知,粘性负载平衡的想法不是 Akka 的一部分,但我可以设想这是通过使用会话 ID 作为键和 Actor 名称(或路径)作为值的 Map 来实现的。一个快速的 actorFor 将负责其余的工作。没有经过深思熟虑,但应该让您很好地了解从哪里开始。

可以插入我自己的基于自定义的负载均衡器。

请参阅路由文档。

易于编写和部署。

这取决于您的能力和努力,但是在您阅读文档的某些部分后,您应该在几个小时内构建概念验证。

部署可能有点令人沮丧,主要是因为文档在使用远程组件部署 Akka 网络方面并不是很好。但是,网络上有足够多的示例,您可以弄清楚如何完成它......最终。一旦你做了一次,这没什么大不了的。

一个中央配置文件(可能是一个 XML),用于处理所有后端服务器。

Akka 使用 Typesafe Config (https://github.com/typesafehub/config),它比 XML 更容易使用(但我讨厌 XML,所以请谨慎对待)。至于中央配置,我不确定您要完成什么,但这听起来像是可以使用远程参与者创建来解决的问题。再次,请参阅远程处理文档。

从此配置文件中轻松提取节点(可能使用 xpath)。

Akka 提供了一个查找方法 .actorFor。系统启动并运行后,无需转到配置文件。

如果是这样,akka 或代理示例中是否有负载平衡示例?

谷歌是你的朋友。

于 2012-09-24T13:54:50.730 回答