有人告诉我,当我创建一个执行元并为其命名时,可以通过url路径来标识该执行元。 即如果我创建了一个执行元
ActorSystem system = ActorSystem.create("mySystem");
ActorRef reference = system.actorOf(Props.create(Actor.class),“actorName");
那么这是否意味着我可以通过向“akka.tcp:/mySystem@ip:port/user/actorName”
发送http请求来联系这个参与者? 如果是的话,我们如何通过HTTP调用actor.class的方法呢?
正如Matthias所建议的,Akka actor不公开HTTP端点。
但是,是的,每个参与者都有一条路径,可以通过路径查找它自己的引用,请参见通过具体路径查找参与者。 这并不意味着可以在actor上调用方法--您所能做的是通过查找路径,然后向actor发送消息来获取它的actorref
。 发送消息是唯一合法的与演员交流的方式。 请参阅下面的示例代码:
case class Message(payload: String)
def lookupByPath(path: String): Future[ActorRef] = ???
val actorRefFuture = lookupByPath(path)
actorRefFuture.onComplete {
case Success(actorRef) =>
// This is not allowed in Akka
// actorRef.sayHello()
// Sending messages is the only legit way
actorRef ! Message("hello")
case Failure(ex) => // error handling
}
不,您不能通过HTTP调用Akka执行元的方法。
问题内容: 我们正在研究使用Akka-HTTP Java API-使用路由DSL。 目前尚不清楚如何使用路由功能来响应HttpRequest。使用无类型Akka演员。例如,在匹配Route路径后,我们如何将请求传递给“ handler” ActorRef,该ActorRef随后将以异步方式通过HttpResponse进行响应? 类似的问题被张贴阿卡用户的邮件列表上,但没有后续的解决方案,例如- h
问题内容: 我有一个不是actor的java对象,它使用actorSelection(Path)从一个actor系统中选择actor。系统中可能不存在所选参与者。 在Java Api中,ActorSelection不存在ask(),因此我无法向actor选择发送和标识消息并使用响应的发送者。 我试图通过演员选择将消息发送给演员,然后对死信做出反应来解决该问题。但是我没有任何死信。 如何通过Acto
我们在使用Akka HTTP构建的web服务器上遇到了奇怪的内存行为。我们的架构是这样的: Web服务器路由调用各种参与者,为将来获取结果并将其流式传输到响应 参与者调用非阻塞操作(使用期货),组合和处理从中提取的数据,并将结果传送给发送者。我们使用标准的Akka Actor,实现它的receive方法(不是Akka键入的) 应用程序中的任何地方都没有阻止代码 当我在本地运行web服务器时,一开始
如果要在apstring变量中查找一个字符,可能我们并不想从字符串的头部开始查找。这种find函数的一种实现方式就是写一个增加一个参数的版本——传入我们希望的开始位置的索引。这是该函数的一个实现: int find (apstring s, char c, int i) { while (i<s.length()) { if (s[i] == c) return i; i =
假设我正在初始化一个类obj,如下所示: 可以这样初始化吗?我的意思是我们像这样初始化字符串和基元值,但我指的是任何类。我们怎样才能得到它们,这样它们就可以用在同一个类的某个方法中呢?
我正在中创建路由。我正在为仪表板创建路由。 用户登录并获取 通过发送令牌,用户可以访问与用户相关的一些路由(编辑、删除、注销路由等) 但是对于管理员,我想创建可以查看用户列表、编辑或删除用户、检查用户注销时间的路由。我还设置了表中的标志,以识别用户或管理员 如何在后端验证管理员的路由?
null 对于#1,没有人应该每次入住都登录,因为SPA1、SPA2和MVCApp1基本上都有不同的最终用户。我们不需要SSO。对于#2,不相关,因为我们永远不会允许这样。 这意味着我们有一个IdentityServer4项目,感觉有点矫枉过正,很难调试。比如用户将auth服务器而不是应用程序作为书签,重定向随机失败,等等。 我的问题是,我可以在API中切换到用户身份验证,然后杀死这个身份服务器吗