我使用这个链接中给出的示例代码来实现scala远程应用程序:
我得到以下输出:
服务器输出:
akka://GreetingSystem/user/joe
Server ready
joe received local msg! from Actor[akka://GreetingSystem/deadLetters]
客户端输出:
STARTING
That 's Joe:ActorSelection[Anchor(akka://GreetingSystem-1/deadLetters), Path(/user/joe)]
Client has sent Hello to joe
[
如果使用TestActorRef.apply()创建了一个参与者,则可能无法通过在未来中调用actorSystem.actorSelection.resolveOne来解决问题。
TestActorRef的文档说它可以在单线程环境中使用,但是我想知道下面的测试失败的原因是什么。
Akka版本: 2.4.16
失败的最小测试,如果使用错误akka.actor.ActorNotFound: Actor not found for: ActorSelection[Anchor(akka://test-system/), Path(/user/test-actor)]运行1000次
import ak
我正在使用Akka (2.5.1)在Java (8) Spring (1.5.2.RELEASE)应用程序中处理反应性模式。它进展顺利,但现在我被困在试图从一个演员运行一个CompletableFuture。为了模拟这种情况,我创建了一个非常简单的服务,它返回一个CompletableFuture。但是,当我试图将结果返回给调用控制器时,我会得到关于死信的错误,而不会返回任何响应。
我得到的错误是:
INFO akka-spring-demo-akka.actor.default-dispatcher-5消息java.lang.String从Actorakka://akka-spring-d
我编写了以下代码,以便在将来调用某些异步工作时,试图确定参与者对传入消息的行为(实际上,异步工作是为了对Slick的异步数据库API建模):
val actor = system.actorOf(Props[WTFAsyncActor])
for (i <- 1 until 100) {
actor ! 'wtf + i.toString
Thread.sleep(200l) // yes I know actors should not invoke this method
}
Thread.sleep(10000l) // same as a
假设我把一个akka演员写成
class SomeActor extends Actor {
val state = mutable.Map[String, Long]()
def receive = { // Do some processing on the state
}
override def postStop () {
println(Integer.toHexString(System.identityHashCode(state)))
}
}
现在,如果我使用轮询路由器,则需要进行负载平衡
actorSystem.actorOf(Prop
我的用例类似于,希望从JSON对象中读取一个内部的、巨大的数组(以多千兆字节作为文本),例如:
{ "a": "...", // root level fields to be read, separately
...
"bs": [ // the huge array, most of the payload (can be multiple GB's)
{...},
...
]
}
输入作为Source[ByteString,_] (Akka流)可用,我在其他地方使用Circe解码JSON。
使用带有一个简单的get从Slick DAO返回未来的Akka,只会在将来实际完成时给出一个超时响应503 service unavailable,而在超时过期后只会给出503个响应。
下面是application.conf中的配置
include "akka-http-version"
akka.http {
server {
idle-timeout = 300 s
request-timeout = 2 s
}
}
如果使用上面的配置,请求出现并接受存储库,那么假设是10 seconds,那么10秒后的响应--是503 --而在2 seco
我尝试实现了一个简单的基于TCP的协议,用于与Akka流交换消息(见下文)。但是,似乎没有立即处理传入的消息;也就是说,在一个接一个地从客户端发送两个消息的场景中,只有在从服务器发送一些消息之后才会打印第一个消息:
At t=1, on [client] A is entered
At t=2, on [client] B is entered
At t=3, on [server] Z is entered
At t=4, on [server] A is printed
At t=5, on [server] Y is entered
At t=6, on [server] B is pr
我对使用Play框架和Akka编程相当陌生,尽管我已经读到它们有一段时间了。我现在在默认/基本游戏环境中启动一个概念验证应用程序。我的问题源于web service client api in Play ()。
这个应用程序基本上需要以尽可能可伸缩和高性能的方式中介对远程SOAP web服务的调用。浏览器在JSON中进行ajax调用,Play应用程序需要在响应中将其转换为SOAP/XML,反之亦然。
如果我直接通过控制器使用play web服务客户端,这些调用可以是异步的,这比我们现在所做的(阻塞)要好得多。然而,我不清楚这到底是如何在重载下表现的。并发/线程管理在很大程度上会留给底层Nett