架构风格与模式58 条

Actor 模型

每个 Actor 拥有私有状态与邮箱,按顺序处理消息;Actor 之间只通过消息交互,可形成监督树实现故障隔离,适合高并发有状态场景。

核心约束状态不共享,消息异步传递,单 Actor 内串行处理
故障处理监督策略:重启、停止、上报
实现Akka、Erlang/OTP、Orleans 等

消息处理示意(伪代码)

消息处理示意(伪代码)
actor Counter {
  state n = 0            // 私有状态
  on Inc(delta) { n += delta; reply n }
  on Snapshot() { save(n) }
}
// 消息按到达顺序处理;跨 Actor 只发消息,不直接读其状态
Actor 模型把并发控制收敛到消息顺序上,避免了共享内存锁,但需要设计好消息协议与监督层级。

易错点

  • Actor 内部阻塞等待外部调用,邮箱迅速积压
  • 消息协议无版本管理,升级期间新旧 Actor 不兼容

数据来源与参考

  • Carl Hewitt Actor 模型论文(1973)
  • Akka 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌