每个连接在播放框架2中如何处理?

问题描述:

我收到有关如何播放2架构的混合信息。它在网站上说,它建立在阿卡上,这很可能意味着它在每个连接上使用一个演员?它还表示不要编写阻止代码,因为它阻止其他事件在不同连接中触发(类似于它如何阻止node.js中的事件循环)。那怎么可能,因为阻止1个actor中的代码不会阻塞另一个actor中的代码?这不就是使用actor与node.js之类的回调吗?每个连接在播放框架2中如何处理?

当他们说Play是建立在Akka之上的时候,他们指的是框架而不是网络服务器。连接由JBoss Netty(http://netty.io/)处理,它是嵌入式网络服务器。

连接可以是有界的(或不)到阿卡演员是提供一种异步响应如下所述:http://www.playframework.com/documentation/2.1.0/JavaAkka

参与者之间的通信是非阻塞因为他们发送消息(任何对象)和别等待回应(他们不会调用与不同演员交流的方法)。

的逻辑是类似:

//somewhere in the code 
ActorB.tell(new Request(...)); 
----------------------------------------- 
ActorB: 

    public void onReceive(Object msg) throws Exception { 
     if (msg instanceof Request) { 
      //process the request 
      ActorA.tell(new Response(...)) 
     } 
    } 
---------------------------------------------------------------- 
ActorA: 

    //ActorA is notified 
    public void onReceive(Object msg) throws Exception { 
     if (msg instanceof Response) { 
      System.out.println("Response: " + msg) 
     } 
    } 

的方法告诉()发送该消息,并且不等待响应。