小编Mag*_*nus的帖子

如何扩展使用Akka的Scala REST应用程序?

我有一个使用Akka的Scala应用程序,它接收REST请求,对数据库进行一些操作,并向客户端响应一些信息.实际上,我的数据库操作需要很长时间,而我的启用REST的actor在此期间无法响应新请求,即使我可以同时对数据库运行大量操作.我正在使用javax.ws.rs注释来启用我的actor中的REST方法.

问题; 什么是使我的应用程序能够处理大量并发请求的最佳方法?

编辑:我将添加一些示例代码.

  import se.scalablesolutions.akka.actor._
  import javax.ws.rs._

  @Path("/test")
  class TestService {

    @GET
    def status() = 
      actorPool !! Status(session).
        getOrElse(<error>Unable to connect to service</error>)
  }

  class TestActor {

    def receive = {
      case Status() => {
        reply(SomeObject.slowDBMethod)
      }
    }
  }

  case class Status()
Run Code Online (Sandbox Code Playgroud)

EDIT2:这就是我在日志中得到的内容.我正在从浏览器发送三个请求,因为我可以切换标签并按F5,但RS bean仍然等待第一个请求完成后再处理下一个请求.

[INFO] [2010-08-29 16:27:03,232] [akka:event-driven:dispatcher:global-15] c.n.StatusActor: got Slow request
[INFO] [2010-08-29 16:27:06,916] [akka:event-driven:dispatcher:global-10] c.n.StatusActor: got Slow request
[INFO] [2010-08-29 16:27:10,589] [akka:event-driven:dispatcher:global-3] c.n.StatusActor: got Slow request
Run Code Online (Sandbox Code Playgroud)

rest scala scalability jersey akka

12
推荐指数
2
解决办法
3419
查看次数

标签 统计

akka ×1

jersey ×1

rest ×1

scala ×1

scalability ×1