Akka 消息对于发送者-接收者对应该是唯一的吗?

Should Akka messages be unique for a sender-receiver pair?

最佳实践问题:

Akka 消息类型(案例 class)是否应该始终仅由单一类型的 actor 发送并仅由单一类型的 actor 接收?

示例:

三种演员类型:MainSenderMainReceiverWorker
MainSender 发送消息 DoSomething(work)MainReceiver
MainReceiverDoSomething(work) 消息转发给 Worker

这是最佳做法吗?或者为另一个发送者-接收者对定义一个新案例 class 会更好吗?

MainSender 发送消息 DoSomething(work)MainReceiver
MainReceiver 发送消息 StartWorking(work)Worker

您完全可以向任何演员发送相同的消息,只要它在您的架构中有意义。完全鼓励重用您的代码。

正如您所建议的,这正是 forward 函数的作用。

同样的逻辑也适用于 Exception:如果你想抛出一个 Exception,你可以使用一个现有的,如果它符合你的需要,或者创建一个新的。