问题标签 [akka-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 回答
69 浏览

scala - Akka Actors 向具体 Actor 发送消息

使用 Akka Actor 是否可以将 Actor 组织成一个环并仅向两个(左、右)邻居发送消息?

0 投票
1 回答
45 浏览

scala - 如何在 Akka Classic Actor 中记录文件名和行号?

我们使用 logback 作为 Akka 的日志记录后端,如下所述:https ://doc.akka.io/docs/akka/current/logging.html

但是如果我使用这个 logback 片段

我看到 ... [ Slf4jLogger.scala:83] ... 作为文件名和行号,这似乎是 akka 库中的一个类。

如何获取日志记录语句的真实位置?

0 投票
1 回答
118 浏览

scala - 仅在处理完所有消息后才向 Akka actor 询问结果

我试图将一大块文本分成多个段落,并通过调用外部 API 来同时处理它。每次响应来自该段落的 API 时,都会更新一个不可变列表。

处理完段落并更新列表后,我想向 Actor 询问最终状态,以便在接下来的步骤中使用。

以下方法的问题是我永远不知道何时处理所有段落。一旦处理完所有段落并且列表是最终的,我需要取回targetStore 。

0 投票
1 回答
40 浏览

akka-actor - replyTo 在这里指的是什么?

我正在阅读这个 Akka 文档https://doc.akka.io/docs/akka/current/typed/actor-lifecycle.html#spawning-children和这个代码片段,

这是使用 Ask 模式来创建一个子actor。我的问题是关于这件作品,

它是一个代表工厂函数的lamda,它接受一个replyTo参数,并返回一个actor。但是replyTo这里有什么?它来自哪里,它指的是什么?很难对它有一个非常清晰的了解。

谢谢你的帮助!

0 投票
1 回答
88 浏览

scala - 如何将经典的 ActorContext 转换为类型化的

假设我定义了一些消息:

然后是下面的经典演员来处理这些消息。在创建时,我需要访问 ActorContext 但作为类型化上下文而不是经典

我知道我可以做 self.toTyped[Command] 来获取输入的自我引用。但我找不到任何与 ActorContext 类似的东西。我将如何进行转换?

0 投票
1 回答
44 浏览

scala - 在 RoundRobinPool 中获取所选演员?

如果我有这样的 RoundRobinPool

和一个处理程序

有什么办法可以吗

  • def requestHandler,
  • 向刚刚处理请求的同一参与者发送后续消息
0 投票
2 回答
228 浏览

scala - 在两个演员之间使用 pipeTo 时得到 akka 死信

我有一个用例,其中我有一个演员层次结构

现在工人孩子工作并将其结果发送给它的父母(childABC,它是父母的孩子)并且那个孩子演员(childABC)将结果发送回我正在使用的父母演员pipeTo,这里得到死信是我的代码

parent演员:

childABC(根据我上面给出的示例)

child演员:

以下是日志:

请指导我我在哪里弄错了,或者pipeTo不应该这样使用?如果是这样,我应该怎么做才能使它工作

0 投票
2 回答
68 浏览

multithreading - 是否可以在 Akka Actor 的 Actor 函数中定义线程?

假设我在 Akka Actor 中有一个带有方法的 Actor 类:

可以在这种方法中运行一个新线程吗?Akka自己的线程不会有问题吗?

0 投票
0 回答
25 浏览

java - CPU 未充分利用的消息延迟

我们有一个 Java 应用程序,我们基本上使用三个调度程序池来处理处理任务:

  1. 将传入消息(来自 RabbitMQ 队列)转换为另一种格式
  2. 序列化消息
  3. 将序列化消息推送到另一个 RabbitMQ 服务器

我们不知道如何开始修复它的问题是,我们在第一个问题上存在延迟。换句话说,当我们测量从“tell”到actor开始转换之间的时间时,(不总是,但经常)有高达500ms的延迟。特别奇怪的是,CPU 利用率严重不足(10-15%),邮箱几乎一直是空的,没有大量消息等待处理。我们的理解是 Akka 通常会比这更好地利用 CPU?

转换是非阻塞的,不需要 I/O。大约有。200 个参与者在该调度程序上运行,该调度程序配置为吞吐量 2 并具有 8 个线程。

系统本身有 16 个 CPU,运行着大约 400 多个线程,当然大部分是被动的。

有趣的是,其他步骤没有看到这样的延迟,但这可能可以解释为第一步已经“传播”了消息,以便其他步骤/池可以轻松消化它们。

有谁知道什么会导致这种延迟和 CPU 利用率不足,以及您通常如何改进那里的东西?

0 投票
0 回答
69 浏览

java - 使用背压播放框架 ActorFlow

当前用于 Actor 类的流实现的播放框架实现是在没有背压的情况下编写的。我想用背压actorRef替换actorRefWithAck. 但是演员流程是用我不熟悉的Scala编写的。任何人都可以解释如何用java编写这个类吗?

ActorFlow类如下: