concurrency - 使用 Actor 发送+处理多条消息

标签 concurrency akka

与 Actor 合作时,如果一个 Actor 需要与多个其他 Actor 合作来满足某个请求,那么这里推荐的方法是什么?更准确地说,如果Actor A(通过处理消息M)需要从Actor B + Actor C检索信息,那么它可以异步向Actor B + C发送消息,但是它应该如何将Actor B + C的响应与Actor B + C的响应关联起来?原始消息 M ?

我查看了 Akka 框架,但不明白这是如何完成的,因此必须自己实现一些东西,让 Actor 跟踪已发送的消息并尝试将其响应与源消息关联起来。我一定错过了一些东西,因为我认为这种类型的行为已经内置到各种 Actor 框架中

最佳答案

通常,如果您需要发送消息并获得相关响应,则最终必须在原始消息中发送某种随机数,响应者必须将其与其回复一起返回。这可以是显式的,也可以在消息传递层中得到支持。不确定 Akka,但这就是 Erlang 在 OTP 中处理 RPC 的方式。

关于concurrency - 使用 Actor 发送+处理多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026086/

相关文章:

scala - Akka中的reference.conf与application.conf文件

scala - 如何在 Play2.4/Scala 中自动订阅 actor 到 akka 事件总线

scala - 在 Akka 中直接使用 Futures

unit-testing - 生成的 akka 持久性 actor 测试事件

Java:没有 volatile 变量就关闭?

java - 如果 wait(timeout) 和 notifyAll() 被同一个对象锁定,timeout 是什么意思

concurrency - Memcached – GET 和 SET 操作是原子的吗?

java - 同步方法和 Semaphore(1, true) 的语义等价吗?

scala - 从 Akka Actor 处获取消息

java - 如何在不使用同步(无锁序列计数器实现)的情况下修复竞争条件?