文章 2018-07-18 来自:开发者社区

akka设计模式系列-慎用ask

  慎用ask应该是Akka设计的一个准则,很多时候我们应该禁用ask。之所以单独把ask拎出来作为一篇博文,主要是akka的初学者往往对ask的使用比较疑惑。   "Using ask will send a message to the receiving Actor as with tell, and the receiving actor must reply with sender()....

文章 2018-07-17 来自:开发者社区

akka设计模式系列-While模式

  While模式严格来说是while循环在Akka中的合理实现。while是开发过程中经常用到的语句之一,也是绝大部分编程语言都支持的语法。但while语句是一个循环,如果循环条件没有达到会一直执行while语句体的代码,且会阻塞while语句外的代码。如果在Akka中简单的使用while语句会极大的限制当前actor的功能。 object GeneralWhile { def main...

文章 2018-07-13 来自:开发者社区

akka设计模式系列-Chain模式

  链式调用在很多框架和系统中经常存在,算不得上是我自己总结的设计模式,此处只是简单介绍在Akka中的两种实现方式。我在这边博客中简化了链式调用的场景,简化后也更符合Akka的设计哲学。 trait Chained{ def receive:Receive = Actor.emptyBehavior } trait IntReceiveChained1 extends Chained{ ...

文章 2018-07-12 来自:开发者社区

akka设计模式系列-Aggregate模式

  所谓的Aggregate模式,其实就是聚合模式,跟masterWorker模式有点类似,但其出发点不同。masterWorker模式是指master向worker发送命令,worker完成某种业务逻辑。而聚合模式则刚好相反,由各个worker完成某种业务逻辑后,把结果汇总发给某个actor,这个actor不一定是masterActor。 class AggregateMasterActor.....

文章 2018-07-11 来自:开发者社区

akka设计模式系列-消息模型

  通过前面的文章我们总结了几个常见的actor设计模式,但此处不得不提前介绍一下在Akka中消息的设计模式。随着对Akka的使用,我们会发现,使用Akka设计系统其实就是面向消息编程。actor之间消息设计的是否合理,往往意味着Akka应用设计的是否合理。那么actor之间的消息该如何设计呢?   命令和事件   actor之间都是通过“消息”进行通信的,对各种各样的“消息”进行分析,我们可以....

文章 2018-07-10 来自:开发者社区

akka设计模式系列-Backend模式

  上一节我们介绍了Akka使用的基本模式,简单点来说就是,发消息给actor,处理结束后返回消息。但这种模式有个缺陷,就是一旦某个消息处理的比较慢,就会阻塞后面所有消息的处理。那么有没有方法规避这种阻塞呢,这就是本章要讲的Backend模式。   关于Backend模式,我们可以类比java中的线程池来理解,简单点来说就是把耗时或者阻塞的操作放到后台去执行。java中可能会将耗时的操作放到后台....

文章 2018-07-06 来自:开发者社区

akka设计模式系列-基础模式

  本文介绍akka的基本使用方法,由于属于基础功能,想不出一个很高大上的名称,此处就以基础模式命名。下文会介绍actor的使用方法,及其优劣点。 class SimpleActor(name:String) extends Actor { private def doWork(message:SayHello):Unit = { println(s"$name 收到 ${mess...

文章 2018-07-05 来自:开发者社区

akka设计模式系列(Actor模型)

  谈到Akka就必须介绍Actor并发模型,而谈到Actor就必须看一篇叫做《A Universal Modular Actor Formalism for Artificial Intelligence 》的论文,它最早发表于1973年,提出了一种并发计算的理论模型,Actor就源于该模型。   在Actor模型中,actor是一个并发原语,简单的说,一个actor就是一个工人,与进程或线程....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。