读Akka实战笔记
文章平均质量分 88
西红柿丶番茄
这个作者很懒,什么都没留下…
展开
-
初识Akka
单机系统,我们使用JAVA API中的Executor、Fork/Join(分而治之)等,就能很好的解决的多线程并发问题,但在分布式集群项目中,它们或许并没有那么完美。 背景 当今社会,人们在享受互联网带来便利的同时,对产品的要求越来越高,响应快、稳定性好。为了达到用户的要求,产品开发或维护阶段,服务化、分布式、并行计算成为开发人员面临的难题。 ...原创 2018-09-16 22:38:00 · 494 阅读 · 0 评论 -
Akka工具(二)—Event Bus
某一天小明:你好,你是报刊工作人员吗?报刊:是的,请问,你有什么需要吗?小明:我想订阅报刊,关于娱乐、经济、社会类的,其它的我不想要,可以吗?报刊:可以的,并且你可以随时取消订阅。小明:好的,谢谢你。祝你工作愉快!通常该过程我们都是在软件上实现的,但是这并不影响我们要说明的内容。实际项目中,业务是复杂多样的,一个业务可能需要依赖另外一个业务,同时也可能取消和该业务的关联,如...原创 2018-12-01 22:49:55 · 1777 阅读 · 0 评论 -
Akka工具(二)—Future
Future被Akka设计用来处理并发执行结果的数据结构,我们可以通过同步(阻塞)或异步(非阻塞)的方法接受结果。使用Future,我们可以在Actor外部获取某个Actor的消息,在介绍Actor消息发送方式时,我们进行过简单介绍,现在我们先来回忆一下Future的常规用法。 Future消息处理 ask发送消息会返回一个Future对象,通过该对象我们可...原创 2018-12-01 20:13:03 · 989 阅读 · 0 评论 -
Akka工具(一)—Scheduler
小李:小胖,12月06日是我爸的生日,我怕那一天忘了,应该怎么办啊,你到时能提醒我一下吗?非常感谢。小胖:我也可能忘记啊,你再想想其它办法吧!小李:那怎么办啊,这么重要的日子,我可不能忘记啊。小胖:咦,你不是已经有手机了吗?我听说现在手机有日历功能,有定时提醒功能,可以试试看。小李:对啊,我们要物尽其用啊。五分钟后......小李:好了,我刚刚测试了一下,果然可行,谢谢你啊...原创 2018-11-24 13:12:23 · 2063 阅读 · 0 评论 -
消息路由
Akka具有分布式、集群、微服务等特点,可以快速构建高可用、高性能的分布式应用。多个Actor之间消息传递,可以使用tell、ask、forward等简单方式,但是当一组Actor需要进行有规律的消息传递时,就显得稍微复杂。Akka路由组件,就是为了解决我们复杂的消息传递,例如广播、轮询、随机等,有两种实现方式:配置和代码创建。 什么是路由 路由就是一...原创 2018-11-18 21:09:17 · 2339 阅读 · 0 评论 -
邮箱-Mailbox
Actor之间发送消息,并不是直接通过API的方式直接实现,而是依赖于自己的邮箱(mailbox)。这就好比在旧社会中,大家进行信件交流,发件人把自己的信件放到自己的邮箱中,送件人每天早上从你的邮箱中取出信件,在这个过程中,邮箱就起到了中间存储作用,所有的信件都会放在里面。在Actor系统中,邮箱是一个队列结构,默认遵循FIFO,可以根据我们的需要自定义。 Actor...原创 2018-11-11 22:23:44 · 11072 阅读 · 0 评论 -
线程调度(Dispatcher)
在前面的章节中,我们已经了解到Actor的基本知识点,例如创建方式、生命周期、消息通信、监控、容错。关于actor通信,大家都很熟悉,通过tell和ask就可以实现,但是,现在我想跟大家谈论一下actor的消息是如何进行调度的。 Dispatcher 在Akka中,为了保证消息处理的及时性和线程的使用效率,Dispatcher对线程池做了一些协调工作。简单...原创 2018-11-03 22:48:38 · 3904 阅读 · 0 评论 -
Actor监控与容错机制
在如今的IT行业中,如果一个系统不具备高可用以及稳定性,那么它迟早会被淘汰的。也许有时出现故障并不是代码本身的问题,网络(连接超时、读超时等)、服务器故障、用户操作有误等原因,也不能影响用户的体验。程序发生故障时,我们要尽可能保证用户体验不受影响,这就需要我们的系统具有良好的容错机制,能保证服务在不可用时自我修复。 监督策略 Actor作为Akka中最基本...原创 2018-10-05 20:18:38 · 808 阅读 · 0 评论 -
Actor简介(二)
在上一部分,我们已经介绍了actor的基本用法,知道如何创建一个actor。我相信大家肯定不想局限于如此,一定想把actor紧紧的握在手中,掌握它的生死。come on ,来吧! Actor生命周期 线程在运行历程中,会经历创建、准备、等待、阻塞等阶段,这一系列我们称之为生命周期。当然,actor也有它自己的生命历程,比如创建、运行、重启和销毁等。在理想的...原创 2018-10-04 10:15:51 · 2246 阅读 · 1 评论 -
Actor简介(一)
在开发初期,业务单一、系统简单,一台机器或许就能支撑,这个时候,单机上的任务大多直接调用API的方式就能完成。然而当业务需求日益增多,功能逐渐复杂化,我们就需要考虑把项目拆分成分布式环境,这时,多系统通信就需要通过网络实现。JDK内置的并发包在单机上游刃有余,在分布式环境中,就不是那么完美了。Akka通过Actor很好的解决了远程通信问题。 Actor初识 ...原创 2018-09-26 22:27:52 · 5511 阅读 · 2 评论 -
Akka-SpringBoot集成
当我们已经了解Akka的基础知识之后,我们更多的是想知道在实际项目中,我们应该怎样使用起来。按照目前业界使用的技术来看,spring应该占主流,由于spring本身需要太多的配置文件,流程繁杂,这里采用较轻量的springboot来向大家介绍,只是省去诸多配置文件,操作过程都一样。与springboot集成,是因为我们想把ActorSystem、Actor等组件的创建纳入SpringBoot容...原创 2018-12-16 22:12:56 · 7065 阅读 · 3 评论