Akka中连续调用tell发送的消息是否保证按发送顺序被Actor处理?
Akka Actor消息发送顺序问题
问题示例
actor ! message1 actor ! message2
上述代码中,message1和message2是否总会被目标Actor按发送顺序接收并处理?
答案
是的,对于同一个发送者来说,连续调用!(tell)发送给同一个目标Actor的消息,一定会按发送顺序被接收和处理。
Akka Actor的邮箱是一个有序消息队列,当同一个发送者向目标Actor连续发送消息时,这些消息会严格按照发送顺序进入目标Actor的邮箱。Actor处理消息时,会从邮箱头部依次取出消息执行,不会出现后发送的消息先被处理的情况。
需要注意的是,这个顺序保证仅针对同一个发送者发送给同一个目标Actor的场景。如果是不同发送者向同一个Actor发送消息,消息的处理顺序则无法保证。
内容的提问来源于stack exchange,提问作者senjin.hajrulahovic
相关产品推荐
相关产品推荐

