使用Akka在多个后端服务器之间加载HTTP SOAP请求

时间:2012-09-24 07:21:46

标签: load-balancing akka sticky

我正在开发一个具有以下要求的项目:

  1. 在多个后端服务器上执行基于粘性的负载平衡(基于SOAP会话ID)。
  2. 可以插入我自己的基于自定义的负载均衡器。
  3. 易于编写和部署。
  4. 中央配置文件(可能是XML),用于处理所有后端服务器。
  5. 从此配置文件中轻松提取节点(可能使用xpath)。
  6. 我尝试使用驼峰一段时间但是,无法用它执行某些任务。 所以考虑尝试阿卡。 akka能否满足上述要求?

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

    非常感谢一些反馈。

1 个答案:

答案 0 :(得分: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)和Remoting(http://doc.akka.io/docs/akka/2.0.3/scala/remoting.html)将负责后端服务器。你可以轻松地将两者结合起来。

据我所知,粘性负载平衡的想法不是Akka的一部分,但是我可以设想这是通过使用会话ID作为键并使用Actor名称(或路径)作为值来实现的。一个快速的演员将负责其余的事情。没有仔细考虑,但应该让你知道从哪里开始。

  

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

请参阅路由文档。

  

易于编写和部署。

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

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

  

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

Akka使用Typesafe配置(https://github.com/typesafehub/config),它比XML更容易使用(但我讨厌XML,所以要考虑到这一点)。至于一个中心配置,我不确定你想要完成什么但听起来像是可以使用远程actor创建解决的东西。再次,请参阅Remoting文档。

  

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

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

  

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

Google是你的朋友。