问题标签 [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 投票
2 回答
378 浏览

java - akka 序列化字节缓冲区 - java.lang.UnsupportedOperationException

我需要一些帮助来序列化一个实体以通过 Akka Remote 发送它。

这是序列化程序类:

我在第 5 行得到以下异常

这是我发送给远程参与者的消息:

奇怪的是它以一种方式工作,如果我们使用它发送消息,它在接收器中工作正常:

但是当我们使用 then 重播给发送者 actor 时, getSender().tell(m, getSelf());我们得到了异常。

我们正在使用 Java 1.8 和 akka-remote_2.11:2.5.3

提前致谢!罗德里

0 投票
3 回答
212 浏览

heroku - Akka - 创建远程演员

我正在尝试在远程主机上创建 Akka Actor。按照官方文档,我创建了一个解析 application.config 文件的远程 Actor 系统,然后我创建了一个新的 Actor。这是我的代码:

这就是我设置 application.conf 文件的方式:

akka {演员{提供者=远程}远程{启用传输= [“akka.remote.netty.tcp”] netty.tcp {主机名=“shielded-atoll-29637.herokuapp.com”端口=2552}}}

更多详细信息:

  • Akka 协议默认由 Akka 提供
  • shielded-atoll-29637.herokuapp.com 是我托管在 heroku 上的服务器的默认域。

关键是:我应该使用另一台服务器还是 heroku 就足够了?如果 Heroku 没问题,我是否应该编写一个服务器应用程序,在端口 2552 上侦听传入的参与者创建请求?因为文档根本没有提到任何东西。

提前感谢,贾科莫

0 投票
1 回答
322 浏览

c# - 用于远程处理的 Akka.NET 配置设置

我正在使用Akka.NET github上的示例来玩一些基本的远程处理。

在 GitHub 提供的远程处理示例中,Akka.NET 的配置字符串中有以下部分。

  1. 正斜杠 / 表示什么?这是评论还是只是文件的格式?

  2. 路由器选项“循环池”控制什么?我可以看到它映射到以下类,但我希望有人可以解释 akka.routing 在远程处理场景中的实际含义?我假设这与 url 或 ips 的映射方式有关吗?

任何澄清将不胜感激。

0 投票
1 回答
2068 浏览

c# - 让 Akka.NET 连接到远程地址

我发现的所有演示如何开始在 Akka.NET 中进行远程处理都展示了两个参与者使用 localhost 在同一台机器上运行的最简单的用例。

我试图让 Akka.NET 演员连接到远程机器并遇到了一些困难。

代码非常简单:

客户代码

服务器代码

当我在本地网络上的另一台机器上运行参与者进程时,我可以成功连接,但是当我将相同的简单示例分发到云 VM 上时,我收到以下错误:

我也尝试过使用“127.0.0.1”,但这似乎在本地或网络上都不起作用。

任何人都可以就我可能做错的事情提供任何意见吗?

更新

我尝试使用 Akka.NET 中可用的绑定主机名和绑定端口选项,因为这应该可以解决我认为我正在遭受的 NAT 问题。不幸的是,这似乎也不起作用,我尝试了各种配置选项,例如使用主机名和 IP 地址,如下所示:

尝试上述配置时收到的错误消息是:

0 投票
1 回答
149 浏览

scala - 以编程方式创建远程 Actor 不起作用

我正在以编程方式创建远程 akka 演员。

以下是程序 -

配置是 -

运行程序后的输出是 -

我发送给演员的消息总是进入死信。看起来remoteActorAddr在 RemoteNodeApp 演员系统上没有成功创建。任何想法为什么不创建演员以及为什么消息总是变成死信。谢谢。

0 投票
1 回答
172 浏览

scala - 将akka远程迁移到akka-http如何序列化为json而不是protocolBuffer而无需大量工作

我在 scala 中有一个已经存在的应用程序,它使用 akka-remote 将消息从 webserver 发送到 appserver。我将把它改为 http 请求。

我看到今天akka-remote 已经为我处理了所有的序列化和反序列化,而无需编写任何序列化器/反序列化器,但协议是协议缓冲区。

使用 http 请求响应,我希望使用 json 而不是协议缓冲区。

从 webserver 发送到 appserver 的消息是复杂的案例类。我不想编写所有编写器/读取器/格式化程序来进行 json 序列化,就像不需要使用 akka 远程编写协议缓冲区序列化一样。

是否有任何解决方案可以让我在不写所有作者/读者的情况下进行 json 序列化?

谢谢

0 投票
1 回答
463 浏览

akka - AWS 上的 Akka 种子节点丢弃所有消息,因为它们与入站地址不匹配

我发现了很多文档较少的配置选项可供使用,但我似乎无法配置我的种子节点,使其既可以联系自己,也可以被其他节点联系。

目前,我已将其配置为:

在此配置中,节点可以作为种子节点连接到自身并自行运行,但其他尝试与其联系的节点会public-hostname丢弃其消息:

2018-01-25 19:29:56,934 [错误]:application-akka.actor.default-dispatcher-5 中的 akka.remote.EndpointWriter - 为非本地收件人 [Actor[ 丢弃消息 [class akka.actor.ActorSelectionMessage] akka.tcp://application@xx.xx.xxx.51:1551/]] 到达 [akka.tcp://application@xx.xx.xxx.51:1551] 入站地址是 [akka.tcp:/ /application@xxx.xx.xx.5:1551]

我的研究表明存在公共主机名配置来解决这个问题。也许不吧?我尝试了相反的方法,将主机名设置为公共 IP,并将其配置为bind-hostname使种子节点能够连接到自身的 IP:

然后我在相反的方向遇到了同样的悖论:

2018-01-25 19:39:08,207 [警告]:application-akka.actor.default-dispatcher-4 中的 akka.cluster.JoinSeedNodeProcess - 在 [3] 次尝试后无法加入种子节点,将重试。种子节点=[akka.tcp://application@xxx.xx.xx.5:1551]

2018-01-25 19:38:48,168 [错误]:application-akka.actor.default-dispatcher-6 中的 akka.remote.EndpointWriter - 为非本地收件人 [Actor[ 丢弃消息 [class akka.actor.ActorSelectionMessage] akka.tcp://application@xxx.xx.xx.5:1551/]] 到达 [akka.tcp://application@xxx.xx.xx.5:1551] 入站地址是 [akka.tcp:/ /application@xx.xx.xxx.51:1551]

种子节点现在无法连接到自己,因为xx.xx.xxx.51已经接管了入站地址。

我也尝试同时使用public-hostnameand bind-hostname,但没有成功。

0 投票
1 回答
792 浏览

scala - docker 容器中的 Akka 远程

我在设置正确配置以能够访问部署到 docker 容器中的 akka 应用程序时遇到一些困惑。虽然我正在运行一个 virtualbox ubuntu VM,但我首先希望能够在 VM 主机上转发端口之前从该 VM 访问容器。应用程序.conf:

我的 docker 文件根据日志正确构建和运行应用程序:

运行映像后,我在检查容器后尝试访问地址 172.17.0.x:800 但没有在容器控制台上记录任何内容。

0 投票
1 回答
149 浏览

java - Akka 客户端 actor 连接到服务器 actor 系统

我有服务器演员在后台运行。服务器actor的基本操作是获取一个键值对。一旦它收到这对,它将它存储在一个地图中,并在被要求时返回它。现在,我有一个客户演员。我想使用actorSelection() 方法连接到服务器actor。但我对它所采用的参数感到困惑。谁能帮我理解它需要什么参数?

服务器端:- 演员系统:actorSystem 服务器演员:akkademy-db

客户端:- 演员系统:LocalSystem

0 投票
1 回答
193 浏览

akka - 我可以重新启动远程 Akka Actor 吗?

我假设一个主管演员正在监督一个远程演员。如果远程参与者在处理请求时失败,是否有任何方法可以重新启动远程参与者。如果不可能,任何人都可以建议我解决这个问题的方法。先感谢您。