构建基于Actor的系统的设计模式/最佳实践

Vas*_*iuk 63 erlang scala actor

我正在努力寻找任何适当的链接来设计模式,最佳实践或良好的基本架构原则,这些原则应该用于构建基于Actor的应用程序.我知道的那几个是:

博客文章,文章,WIKI,指南

文件

图书

实现

  • Akka框架(Scala中演员的替代实现,具有多个Erlang行为的端口以及许多其他演员的重新演绎模式)
  • Scalaz Actors(演员的作曲,策略和承诺)

演讲

来自highscalability.com的示例

  • 简单排队服务(SQS) - 该服务提供用于存储消息的因特网规模排队服务.分布式actor将工作放在队列中,并将工作从队列中取出.典型用途:集中式工作队列.您将作业放在队列中,不同的actor可以弹出队列的工作并在它们获得CPU时间时处理它们.部分可扩展性.有许多生产者和消费者.你不用担心.队列分布在多台计算机和多个数据中心.

oxb*_*kes 19

这与先前的问题有关,如果不完全相同的话!

这不是一个简单的问题,因为并发的actor模型允许构建许多不同类型的应用程序,从有状态的单VM应用程序(具有几个单独的actor类)到成千上万个actor类实例的无状态集群.

但核心原则是相同的:

  • 永远不要揭露演员的状态
  • 仅通过传递不可变消息进行通信


jam*_*mie 6

几周前我在Scala 上发布了一篇关于演员发展的博客.根据几年的范式经验,这是一个最佳实践和要避免的事情的帖子.