问题标签 [akka-remote-actor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
279 浏览

scala - akka 序列化异常在远程参与者之间发送光滑的表查询

我正在尝试将表查询对象从本地参与者发送到远程参与者,但是 akka 给出了序列化异常

远程 Actor 看起来像这样,并且在这里使用主动平滑模式

本地演员看起来像这样。Local Actor 构建 TableWithIdQuery 并将其传递给上面提到的 Remote Actor。

0 投票
1 回答
585 浏览

akka - 使用 Akka 进行跨服务调用

我正在使用新发布的 Akka.Net 1.0(恭喜发布!)所以这对我来说都是新的,但我很确定任何有 JVM Akka 经验的人也可以加入,因为在问题。

让我们考虑几个(例如,2个)单独的服务,它们是更大的系统/应用程序的一部分。这些服务通常做自己的事情,但有时需要跨服务调用。假设它Service 2可以是独立的并且有一个GetStuff动作。Service 1有一个DoSomething动作,它必须首先得到GetStuff动作的结果。

当两种服务都可以单独部署到不同的机器上时,处理这种情况的首选方法是什么?

正如我所说,我对 Akka 了解不多,但是通过示例、文档和源代码挖掘,我发现了两个选项:

  1. 远程处理。在他们自己的服务中分离参与者系统,Remoting用于ActorSelection从远程主机获取。它与Remoting docs example几乎相同,只是两个参与者系统将是相等的“客户”。
  2. 聚类。我正试图解决这个问题,我现在能想到的最多的是设置一个单独的集群服务,它只是设置集群系统,创建一个简单的侦听器参与者,以便种子节点可以正确初始化(?)。然后在他们自己的服务中创建的每个单独的参与者系统将以不同的角色加入到所述集群系统中。

也许还有另一种我不知道的解决方案......?

就个人而言,集群解决方案乍一看似乎更难掌握和设置,但也许有一些我现在看不到的显着优势。

重申一下,处理这种情况的首选方法是什么,我应该注意什么?

0 投票
1 回答
526 浏览

akka - 将 ActorRef 作为构造函数参数传递

我是 Akka 的新手,我正在构建一个包含许多远程节点的集群系统。远程节点称为工人。工作人员创建远程路由器链。

创建路由器的父级(工人)将有一个统计观察者,该观察者将从路由器的所有路由中获取消息。

qn is : Is 在创建路由器时传递 statswatcher actorRef 作为路由器的构造函数参数或者只是传递 statswatcher 的actor路径作为构造函数参数和路由器中的用户actor选择来告诉消息是一种很好的做法。

**************** 更新 ********

根据来自 akka 邮件组的回复,将 actor ref 作为构造函数参数的回复并不是一个坏习惯。演员选择对于远程演员查找很有用。

0 投票
1 回答
326 浏览

scala - 监听远程 akka ActorSystem 的日志流

我正在尝试订阅远程 akka ActorSystem的日志流,基本上是为了编写一个控制台来显示远程 Actor 的运行日志。

我能想到的唯一方法是:在日志 ActorSystem 中创建一个 Actor,让该 Actor 订阅 ActorSystem.eventStream,然后使用我控制台的 ActorSystem 中的 actorSelection 订阅该 Actor。

但这似乎非常“间接”,因为日志管道看起来像:

有没有更简单的方法来订阅事件流?

0 投票
1 回答
194 浏览

scala - 在本地actor上运行的akka​​远程actor

我正在学习akka-remote并尝试自己重做http://www.typesafe.com/activator/template/akka-sample-remote-scala

当我尝试在两个单独的 JVM 中运行项目时,我看到

我让我Processing System在端口上运行2552

我告诉我的另一个系统(WatchingSystem)在端口上运行但在端口上2554启动processingActor2552

并且common是关于使用正确的提供者

问题/疑虑

  1. 从日志中,我看到processingActor正在运行WatchingActorSystem而不是在运行ProcessingActorSystem,这是怎么回事?
  2. 我怎样才能看到这两个 ActorSystems 是相互连接的。我没有看到日志记录发生。但是,在示例中,我共享了日志记录。我错过了什么?

整个代码发布在Github上并运行

0 投票
1 回答
1369 浏览

scala - 如何观看远程 Akka Actor?

我正在学习 akka-remote,我做的一件事LocalActorSystem是获取远程演员参考并向他发送消息

我的Remote样子

我也想看看remoteActor,如果它死了,LocalActorSystem 就知道了。所以我做了

但随后编译器失败并显示以下消息

在此处输入图像描述

问题

  1. ActorSelection既然不是,我怎么能发送消息Actor
  2. 如何观看 RemoteActor?

更新
但是,不推荐使用的 API 不会抱怨

0 投票
1 回答
147 浏览

akka - Google Cloud VM 上的 Akka 远程处理

我是 Akka 的新手,我正在尝试运行一个在 Google Cloud VM 实例上的 localhost 上工作的简单远程操作者。

VM 具有内部和外部 IP。当我启动一个将 IP 设置为外部的演员时,它无法启动。

但是当我这样做时

一切开始都很好。

现在很明显,当尝试从另一台机器内部 IP 连接时无法解析,所以我试图使用以下命令查找参与者:

并得到以下错误:

[错误] 为非本地收件人 [Akka.tcp://Main@ external IP :45000/]] 丢弃消息 [class akka.actor.ActorSelectionMessage] 到达 [akka.tcp://Main@ external IP : 45000] 入站地址是 [akka.tcp://Main@ internal IP :45000]

最后一部分确实有道理,但我如何让整个事情发挥作用呢?

0 投票
1 回答
181 浏览

akka - akka ActorIdentity.getRef() 在 akka 网站示例中返回 null

我正在尝试运行此处教程中提到的示例:

我下载了选项 2 中提到的模板包,并用它配置了一个 Eclipse 项目。

当我Run the Lookup Example在eclipse中“”(来自上面提到的教程)时,根据教程我应该得到如下输出:

但我实际上得到的是下一行:

反复。
导致LookupActor.javain 函数输出的相关onReceive行是:

( pathakka.tcp://CalculatorSystem@127.0.0.1:2552/user/calculator在类中初始化LookupApplication并传递给 LookupActor。

所以基本上,calculator = ((ActorIdentity) message).getRef(); 总是返回 null,这就是导致这个输出的原因。

到目前为止我试图做的事情:

我试图改变类中的路径变量LookupApplication

和行:

至:

正如我从这里提到的那样理解。

但它没有帮助,它总是返回 null 。我认为这是一个问题,因为教程说输出应该不同。

将不胜感激任何帮助


编辑:
我在类中编辑了“ onRecieve”方法,如下所示:LookupActor

并创建了一个枚举:

并更新了方法“ sendIdentifyRequest”,而不是:

就是现在

它现在正在工作,但我认为这不是正确的解决方案,它只是一种避免真正问题的解决方法。


0 投票
1 回答
144 浏览

configuration - Akka 远程配置无名演员

我是一名新手 Akka 开发人员,我刚刚开始使用远程处理。我总是看到这种类型的配置:

演员被命名的地方,例如“mainRepository”,但如果我想创建未命名的远程演员怎么办?我应该在配置中指定什么?或者我可以通过在请求新演员时不设置 ActorSystem 中的 name 参数来实现吗?

另外,“*”字符是什么意思?或者我在哪里可以了解有关远程配置的更多信息?(除了akka.io)

0 投票
1 回答
185 浏览

serialization - 强制本地 akka 序列化

我对 akka 远程和序列化(我能做什么和不能做什么)有一些疑问,因此我想强制 akka 在本地参与者系统中使用远程。

我怎样才能做到这一点?