2012-09-24 15 views
0

我工作的一个项目之间的平衡HTTP的SOAP请求:使用阿卡要加载的有以下要求多个后端服务器

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

我试着用骆驼工作了一段时间,但无法用它来完成某些任务。 所以想到尝试阿卡。 阿卡可能会满足上述要求吗?

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

会真的很感激一些反馈。

回答

2

你可以用阿卡描述你所做的一切。

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

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

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

这样做,你会发现阿卡是完美的你有一些小的警告说明的项目。

一旦你阅读了文档,下面的答案应该有很大的意义。

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

负载均衡已经是框架的一部分(这就是所谓的路由在阿卡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来实现的。一个快速的演员将会照顾其余的人。没有深思熟虑,但应该给你一个好主意从哪里开始。

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

请参阅路由文档。

易于编写和部署。

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

部署可能有点令人沮丧,主要是因为在部署具有远程组件的Akka网络方面文档并不是很出色。然而,网上有足够的例子,你可以想出如何完成它......最终。一旦你做了它,一次没什么大不了的。

一个中央配置文件(可能是一个XML),照顾所有的后端服务器。

Akka使用Typesafe Config(https://github.com/typesafehub/config),这比XML更容易处理(但我讨厌XML,所以拿一点盐)。就中央配置而言,我不确定你想要完成什么,但听起来像是使用远程actor创建可以解决的问题。再次看到Remoting文档。

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

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

如果是的话,akka或代理示例中是否存在负载均衡示例?

Google是你的朋友。