与 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/