Actor 模型是用于单个进程中的并发模型。逻辑被封装在 Actor 中。每个 Actor 通常代表一个客户端或实体,可以具备本地状态(不共享),通过发送和接收异步消息与其他 Actor 通信。不保证消息传送:某些错误情况下,消息将丢失。每个 Actor 只处理一条消息,因此可以由框架独立调度。
Actor 框架集成了任务调度和消息流的框架。
Actor 模型是用于单个进程中的并发模型。逻辑被封装在 Actor 中。每个 Actor 通常代表一个客户端或实体,可以具备本地状态(不共享),通过发送和接收异步消息与其他 Actor 通信。不保证消息传送:某些错误情况下,消息将丢失。每个 Actor 只处理一条消息,因此可以由框架独立调度。
Actor 框架集成了任务调度和消息流的框架。
模式演化要保证: 向后兼容 较新的代码可以读取旧代码编写的数据 向前兼容 较旧的代码可以读取较新代码编写的数据 数据编码格式 语言特定格式 Python pickle Java java.io.Serializable Ruby Marshal JSON、XML与二进制变体 二进制变体 Message Pack:二进制的 JSON Thrift 与 Protocol Buffers Avro 数据流模式 基于数据库的数据流 不同是写写入不同的值 归档存储 基于服务的数据流:REST 和 RPC RPC 的问题 给人一种本地调用的错觉,却需要面临网络的不确定性:延迟和超时。 基于消息传递的数据流 消息中间件:RabbitMQ、Kafka 分布式Actor 框架:Akka、Erlang OTP