▲▲▲
Actor就是一个工人,能够不停的接受任务(消息),处理任务,任务结束以后以 消息的形式通知给别的actor。
用一个餐厅的场景来描述:
假设餐厅只有三个人,客人、服务员、厨师。我们把这三个人描述为三个actor,
其中服务员和厨师都有自己的工作信箱,他们的工作交互流程概述如下:
❶ 客人选好菜下单,把新订单消息发送到服务员的信箱中。
❷ 服务员收到消息,有新的订单,获取订单信息,然后确认用户的订单,挑选出需要厨师烹饪的菜,然后把烹饪菜肴的订单消息发送到厨师的信箱中。
❸ 厨师收到消息,有新的烹饪消息,获取订单信息,根据客户的需求烹饪完成之后,发送食物准备好了的消息发送给服务员。
❹ 服务员收到消息,获取订单信息,发现是上菜的订单,服务员去厨房取出食物,然后交给客人。
从以上的交互看出,每个actor都是独立的,只关心自己的状态和任务列表,按照自己速度有序的处理工作任务,这样整个系统就能并行的完成任务。
假设餐厅的客人越来越多,一个厨师无法快速的烹饪所有的菜肴,我们可以根据实际情况,增加厨师的个数,厨师之间按照某种规则来分摊订单的请求。