Scala 演员设计模式

Scala 演员设计模式,scala,messaging,akka,actor,event-driven-design,Scala,Messaging,Akka,Actor,Event Driven Design,基于角色的范例非常酷。它的有效扩展能力使它成为任何并发系统都必须评估的范例。我已经读了一些关于它的书,并且对其核心意图有了一个很好的了解:通过消息和多个“参与者”来驱动您昂贵的操作,从而最大限度地减少由于请求/响应交互而导致的等待,从而提高系统的吞吐量。然而,我还没有充分接触到人们对演员使用的设计模式。我正在寻找基于参与者的系统的设计模式 演员设计模式的一个常见示例是一个系统,其中有一个主协调演员和一群童工演员。他们将昂贵的操作映射到较小的块,将较小的块作为消息发送给一组工作人员,等待他们的响应

基于角色的范例非常酷。它的有效扩展能力使它成为任何并发系统都必须评估的范例。我已经读了一些关于它的书,并且对其核心意图有了一个很好的了解:通过消息和多个“参与者”来驱动您昂贵的操作,从而最大限度地减少由于请求/响应交互而导致的等待,从而提高系统的吞吐量。然而,我还没有充分接触到人们对演员使用的设计模式。我正在寻找基于参与者的系统的设计模式

演员设计模式的一个常见示例是一个系统,其中有一个主协调演员和一群童工演员。他们将昂贵的操作映射到较小的块,将较小的块作为消息发送给一组工作人员,等待他们的响应,然后将它们全部缩减为结果。在这种模式的一些复杂示例中,工作者角色通知主控器他们已经准备好进行更多的工作,主控器根据需要向他们发送更多的工作。这确保了工作的适当平衡,并且在工作规模变化较大时非常有用


我到处搜索关于更多基于角色的模式的文献,除了上面的例子之外,还找不到其他的例子。我还没有看过Akka Actors项目示例,但任何指针都将非常有用

这里值得一提的是关于企业集成模式()的工作。他们的作品中完全有可能从未提及“actor”一词,但从队列处理器到actor的翻译是微不足道的,就像将Poe从英语翻译成法语一样。您所描述的负载平衡模式是您将在那里学到的最少的内容。

我强烈推荐Derek Wyatt的“”一书-它关注最新的Akka发行版(2.1),并介绍了使用Akka的一些最佳实践和许多设计模式(强调事件驱动设计)。然而,它确实假设了Scala中相当多的知识


Akka系列的帖子也很有帮助(其中有几篇也是Derek写的[还有一篇是我写的]。

首先,要熟悉和。Actor模型是datatflow编程的一个子集,Actor模型实现甚至受到更大的限制

我找到了更多关于基于事件编程的文献


关于基于事件的交互模式的一章似乎很有希望

这里有一篇很棒的帖子,讨论了如何使用解耦的主/工作模式在远程参与者之间分配工作:这本书很棒。谢谢你的留言。似乎scala演员使用akka