Akka工作原理
Akka中的角色
- ProducerActor(StudentActor)
- ConsumerActor(TeacherActor,onReceive方法接收消息)
- ActorRef(tell方法,发送消息给MessageDispatcher消息派发器)
- ActorSystem(actorOf方法,创建ActorRef,ActorRef就是ConsumerActor的Proxy)
- MailBox
- Dispatcher
- Message
Akka工作流程
- ProducerActor(StudentActor)创建了一个叫ActorSystem的东西。
- 他通过ActorSystem来创建了一个叫ActorRef的对象。QuoteRequest消息就是发送给ActorRef的(它是TeacherActor的一个代理)
- ActorRef将消息发送给Dispatcher
- Dispatcher将消息投递到目标Actor的邮箱中。
- 随后Dispatcher将Mailbox扔给一个线程去执行(这点下节会重点讲到)
- MailBox将消息出队并最终将其委托给真实的Teacher Actor的接收方法去处理。
创建ActorSystem
ActorSystem是进入到Actor的世界的一扇大门。通过它你可以创建或中止Actor。甚至还可以把整个Actor环境给关闭掉。