问题标签 [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.
java - Akka actor system 2.6 在 Play 框架 REST 服务中的使用
我有一个 REST 服务,它有多个相互协调的参与者。数据存储在 postgresDB 中。根据针对类型化 Actor 的新 akka Actor System 2.6,https: //doc.akka.io/docs/akka/2.6/typed/actors.html ,我们需要在 Actor 之间传递消息并基于 Actor 响应的消息。例如,我必须对用户类别进行 CRUD 操作。请求流程为:控制器 -> 参与者 1 -> 参与者 2 -> DAO 响应流程为:DAO -> 参与者 2 -> 参与者 1 -> 控制器
基于这种情况,我有几个问题:
1 我们是否必须为每个参与者设置不同的 onMessages?
控制器将如何调用actor 1?
我们是否需要为每条传递的消息创建一个新的 POJO?例如GetCategory、AddCategory。
每个演员的代码设置不是太多了吗?
scala - 在同一个规范文件中测试 akka-http 和 akka 演员时,如何解决冲突的演员系统?
我有一个Route
使用 akka-http 的定义,它使用内部的演员来发送消息。我的路线如下所示:
我的测试规格:
编译测试失败,因为存在冲突的参与者系统:
覆盖actor系统也无济于事,因为继承的actor系统既有类型的也有无类型的。我怎样才能轻松解决这个问题?
更新:
这与具有不同类型的冲突继承成员有关,但我们可能能够以不同的方式解决我想要在这种情况下实现的目标。
akka - Actor 消息分配到调度程序线程
众所周知,Dispatcher 线程负责执行参与者消息。使用吞吐量参数,我们可以定义否。在移动到另一个参与者之前由调度程序线程处理的消息
但我不确定调度程序线程将如何选择演员?
比如说,我创建了 10,000 个参与者,其中一次只有 1000 个参与者接收消息,其余 9000 个参与者处于空闲状态,调度程序线程数为 200。
调度程序线程将按照哪个顺序选择参与者的消息。它是否也会检查空闲演员邮箱的消息?
谁能解释调度程序线程选择参与者邮箱消息的流程。
akka - java - 如何在java中使用akka actor将消息发布到一个actor实例
我已经使用带有路由器的 RoundRobinPool 创建了 5 个演员实例。如果我输入相同的 2 条消息,它将分配给 2 个演员实例并开始处理。因此,我遇到了一个错误。所以我想一次将一项任务分配给一个实例。有人可以帮我怎么做吗?
scala - Akka Actors 是如何清理资源的?
我们在使用 Akka HTTP 构建的 Web 服务器上遇到了奇怪的内存行为。我们的架构是这样的:
- Web 服务器路由调用各种参与者,获取未来的结果并将其流式传输到响应
- 参与者调用非阻塞操作(使用期货),组合和处理从它们获取的数据并将结果传递给发送者。我们使用标准的 Akka 演员,实现其接收方法(不是 Akka 类型)
- 应用程序中的任何地方都没有阻止代码
当我在本地运行 Web 服务器时,一开始大约需要 350 MB。第一次请求后,内存使用量跃升至 430 MB 左右,并随着每个请求缓慢增加(使用 Mac 上的 Activity Monitor 进行监控)。但是GC不应该在每次请求后清理东西吗?处理后的内存使用量不应该再次为 350 MB 吗?
我还安装了YourKit java分析器,这是一个头记忆图
可见,一旦内存使用量增加,就再也回不去了,系统是无状态的。此外,当我从分析器手动运行 GC 时,它几乎什么都不做,只是内存使用量略有减少。我知道有些服务可能会在第一次请求后缓存东西,暂时消耗内存,但是 Akka Actors 或 Akka HTTP 内部有没有关于这个的策略?
我试图检查离 GC 最远的对象,但它只显示库类和内置类的 Akka,与我们的代码无关。
所以,我有两个问题:
- 消息处理后actor如何关闭资源并释放内存?你有过类似的经历吗?
- 有没有更好的方法来分析 Akka HTTP,它会告诉我使用离 GC 最远的分类的堆栈跟踪?
附带说明一下,是否建议在 Actors 内使用调度程序(在 Akka HTTP 服务器内运行)?当我这样做时,似乎内存使用量大幅增加,并且应用程序在 DEV 环境中运行我们的内存。
提前致谢,
阿米尔
scala - 有没有办法使用 Akka Stash 而不是优先邮箱?
在 Akka Actor 应用程序中,我必须在收到控制消息后推迟接收某些类型的消息。为了控制消息,我必须实现自己的优先邮箱,将控制消息优先于普通消息。让我们假设此实现有效且无法撤消。邮箱如下所示,具有重写的入队和出队功能。
我的配置文件也如下所示:
有没有一种方法可以配置我的应用程序,以便我可以使用 akka stash 来存储消息?
scala - 有没有办法在 akka 应用程序中使用扩展 Actor 类的任意实现方法?
在我的情况下,我有一个带有sendSecureMessage
我想在应用程序中使用的方法的 Actor 类(比如 Greeter)。问题是在创建欢迎角色之后,ActorSystem 只为我提供了一个ActorRef
引用,Greeter
而我不能使用sendSecureMessage
该引用。有没有办法可以调用这个函数?
这就是方法class Greeter(message: String, printerActor: ActorRef) extends Actor
这就是我创建演员的方式:
mongodb - 无法使用 mongodb 在 akka http 中将 scala.concurrent.impl.Promise$Transformation 转换为 scala.collection.immutable.Seq 错误?
基本上我试图使用akka http从数据库中获取数据。如果我直接在 api 中通过 (EmployeeRepo.findAll()) 那么它会显示所有数据,但是在使用 actor 时它会显示转换错误....这里仅用于数据获取的问题请解决
这是我的员工回购-----------------------------------
============EMployeeService------------ 包org.service
------雇员演员-----
---------------员工路线----
=================错误===============
请帮帮我..
scala - Scala Akka Actors:如何将 Http 响应的结果发送回发送者?
我正在尝试在 Akka Actor 中执行以下 Scala 代码。
当 Actor 收到消息“GetProfiles”时:
1-它向远程服务器发送请求,因此操作结果是 Future[HttpResponse]
2- 如果成功,它会检索响应(一个 JSON 数组)并要求将对象解组为 Array[Profile]。(Profile 模型并不重要)。Unmarshall 方法的结果是 Future[Array[Profile]]
3-如果成功,我想将结果发送回原始发件人!
我设法做到了,但这是一个技巧,因为我将发件人保存在一个变量中,该变量在范围(请求者)中可见。我知道有管道模式,所以理论上我可以将responseAsProfiles对象发送回发送者,但是该对象是在responseFuture对象的 onComplete 方法中创建的(当然,我们必须等待它!)
就是这样!在这种情况下,如何使用管道模式将结果发送回发送者?提前致谢!!!