[design] 基于Agent / Actor的并发设计的设计模式


Answers

“actor”本身就是并发编程的统一模式(异步消息队列加上用于处理它的执行上下文),但是有许多设计模式有助于指定基于代理的系统的方面或元素。 许多最常见的可以在维基百科的关于并发模式的文章中找到。 一些亮点:

如果您还没有遇到过, Akka可能会对您感兴趣 - 它是在JVM上运行的“纯粹”事件驱动的actor框架。

Question

最近我开始使用支持actor / agent / shared nothing架构的替代语言 - 即。 scala,clojure等(clojure也支持共享状态)。

到目前为止,我所阅读的大部分文档都围绕着介绍级别。 我正在寻找的是四人一组中更高级的文档,而不是基于任何共享。

为什么? 它有助于改变设计思维的变化。 简单的例子很简单,但在现实世界的Java应用程序(单线程)中,您可以拥有1000个具有复杂关系的成员的对象图。 但是,基于代理的并发开发,它在设计大型系统时引入了一整套全新的思路。 即。 代理粒度 - 一个代理应管理多少状态 - 对性能的影响等,或者是将共享状态对象图映射到基于代理的系统的良好模式。 将域模型映射到设计的技巧。 讨论不是关于技术,而是关于如何在设计中最好地使用技术(现实世界“复杂”的例子会很棒)。






Related