消息模式

AKKA中发送消息的模式分为若要向actor发送消息,可以采用如下两种方式,包括fire and forget模式与send and receive模式。前者为单向消息模式,Actor在发送消息之后,并不需要等待响应,类似一种命令。可以通过tell()方法或者!运算符发送消息。后者的消息发送者(可以视为Producer)需要获得处理后的Response(Consumer执行后的结果)。可以通过ask()方法或者?运算符发送消息,返回的结果为future类型。二者的区别如下图所示:

消息模式

图:来自Akka Essential

无论是fire and forget还是send and receive,都是异步消息模式,一旦发送消息,方法立刻就会返回,而不会阻塞主线程。