摘要: 分析源码的过程中我们发现,Akka出现了Actor、ActorRef、ActorCell、ActorContext等几个相似的概念,它们之间究竟有什么区别和联系呢? /** * Actor base trait that should be extended by or mixed to creat 阅读全文
posted @ 2018-07-25 14:46 gabry.wu 阅读(858) 评论(0) 推荐(0) 编辑
摘要: 在上一遍博客中,我们已经分析了actor创建的大致过程,但只是涉及到了Dipatcher/Mailbox/ActorCell/InternalActorRef等对象的创建,并没有介绍我们自定义的继承Actor特质的类如何完成初始化。这篇文章对这一部分内容进行简单的补充。在akka.actor.dun 阅读全文
posted @ 2018-07-25 09:23 gabry.wu 阅读(453) 评论(1) 推荐(0) 编辑
摘要: 上一篇博客我们分析道mailbox同时也是一个forkjointask,run方法中,调用了processMailbox处理一定数量的消息,然后最终调用dispatcher的registerForExecution重新进行线程调度,达到循环处理邮箱消息的功能。接下来我们分析一下processMail 阅读全文
posted @ 2018-07-23 10:18 gabry.wu 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: 前面两篇文章简单介绍了ActorSystem、actor以及dispatcher和mailbox的创建,下面我们就来看一下actor发消息的内部机制。 同样还是回到一个简单的akka应用,通过之前的分析我们知道,helloActor应该是一个RepointableActorRef类型的对象,那么调用 阅读全文
posted @ 2018-07-20 18:30 gabry.wu 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 上一篇博客我们介绍了ActorSystem的创建过程,下面我们就研究一下actor的创建过程。 普通情况下,我们一般使用ActorSystem的actorOf来创建actor,当然通过上一篇博客的介绍,我们已经知道actorOf是继承自ActorRefFactory的函数。 也比较简单,就是判断一下 阅读全文
posted @ 2018-07-20 14:15 gabry.wu 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: 由于本人对Akka比较感兴趣,也用Akka开发了一些系统,但对Akka的源码还没有具体分析过,希望研究源码的同时写一点博客跟大家分享。有不当之处还请指正。我准备采取Debug的方式来研究Akka的运行过程,从入口开始,直至分析Akka是如何运转的。这样虽然会有点乱,但比较直接,大家凑合着看吧。 使用 阅读全文
posted @ 2018-07-19 16:49 gabry.wu 阅读(4126) 评论(4) 推荐(3) 编辑
摘要: 慎用ask应该是Akka设计的一个准则,很多时候我们应该禁用ask。之所以单独把ask拎出来作为一篇博文,主要是akka的初学者往往对ask的使用比较疑惑。 "Using ask will send a message to the receiving Actor as with tell, and 阅读全文
posted @ 2018-07-18 17:16 gabry.wu 阅读(778) 评论(0) 推荐(0) 编辑
摘要: SpringCloud生态强调微服务,微服务也就意味着将各个功能独立的业务抽象出来,做成一个单独的服务供外部调用。但每个人对服务究竟要有多“微”的理解差异很大,导致微服务的粒度很难掌控,划分规则也不统一。这导致的一个问题就是在实现一个业务场景的过程中,无法避免的需要对微服务进行整合。本文提出了一种对 阅读全文
posted @ 2018-07-18 16:25 gabry.wu 阅读(677) 评论(0) 推荐(0) 编辑
摘要: While模式严格来说是while循环在Akka中的合理实现。while是开发过程中经常用到的语句之一,也是绝大部分编程语言都支持的语法。但while语句是一个循环,如果循环条件没有达到会一直执行while语句体的代码,且会阻塞while语句外的代码。如果在Akka中简单的使用while语句会极大的 阅读全文
posted @ 2018-07-17 09:50 gabry.wu 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 链式调用在很多框架和系统中经常存在,算不得上是我自己总结的设计模式,此处只是简单介绍在Akka中的两种实现方式。我在这边博客中简化了链式调用的场景,简化后也更符合Akka的设计哲学。 输出: 上面这一种实现方式跟akka没有太大关系,是用scala的trait实现的。在类中调用多个Trait中都有的 阅读全文
posted @ 2018-07-13 13:45 gabry.wu 阅读(530) 评论(0) 推荐(0) 编辑