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

时间:2010-10-14 09:55:31

标签: scala erlang actor

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

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

论文

图书

实现

  • Akka Framework(Scala中演员的替代实现,包含多个Erlang行为的端口以及许多其他演员的重新演绎模式)
  • Scalaz Actors(演员的构成,策略和承诺)

演示

来自highscalability.com的例子

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

3 个答案:

答案 0 :(得分:19)

这与previous question相关,如果不是完全相同!

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

然而,核心原则是相同的:

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

答案 1 :(得分:6)

几周前我在Scala上发布了一个关于learnings of actor development的博客。根据几年的范例经验,它是一个最佳实践和要避免的事情的帖子。

答案 2 :(得分:0)

本书'反应设计模式'曼宁正在制作中。

请参阅:https://www.manning.com/books/reactive-design-patterns

相关问题