什么是 Akka
Akka 是 Actor并发模型的一种现代化实现。
什么是 Actor
在 Actor 模型中,Actor 是一个并发原语;更简单地说,可以把一个 Actor 看作是一个能够处理任务的进程和线程的工人。
把 Actor 看成是某个机构中拥有特定职位及职责的员工可能会对理解有所帮助。比如说一个寿司餐馆。餐馆的职员需要做各种各样不同的工作,给客人准备餐盘就是其中之一。
Actor和消息传递
面向对象中可以直接调用对象熟悉和方法。Actor 和对象的不同之处在于其不能被直接读取、修改或是调用。反之,Actor 只能通过消息传递的方式与外界进行通信。
几个重要的概念
Actor:一个表示工作节点的并发原语,同步处理接收到的消息。Actor 可以保存并修改内部状态。
消息:用于跨进程(比如多个 Actor 之间)通信的数据。消息传递:一种软件开发范式,通过传递消息来触发各种行为,而不是直接触发行为。
邮箱地址:消息传递的目标地址,当 Actor 空闲时会从该地址获取消息进行处理。
邮箱:在 Actor 处理消息前具体存储消息的地方。可以将其看作是一个消息队列。
Actor 系统:多个 Actor 的集合以及这些 Actor 的邮箱地址、邮箱和配置等。
下面这个餐厅的例子中黄色部分是Actor,圆圈是邮箱,食物和订单是消息: