我的新书《Akka实战》出版了,感谢各位厚爱!_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 我的新书《Akka实战》出版了,感谢各位厚爱!

我的新书《Akka实战》出版了,感谢各位厚爱!

 2018/5/10 18:56:42  AngelAndAngel  程序员俱乐部  我要评论(0)
  • 摘要:好久没来了,这里发个硬广(轻拍哈),我的新书《Akka实战:快速构建高可用分布式应用》由机械工业出版社出版了,欢迎大家围观,也请大家多指教哦,阅读中有问题可以及时和我交流,我的微信是duyunfeiRoom,加我请注明Akka实战,谢谢。下面先来张图镇楼:为什么写本书?在互联网+的今天,人们在PC、手机、Pad上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。同时,随着这些产品的高速发展,用户规模急剧扩大,系统承载能力会逐渐达到瓶颈,一些早期不常出现的问题也会慢慢浮出水面
  • 标签:

? ? ? 好久没来了,这里发个硬广(轻拍哈),我的新书《Akka实战:快速构建高可用分布式应用》由机械工业出版社出版了,欢迎大家围观,也请大家多指教哦,阅读中有问题可以及时和我交流,我的微信是duyunfeiRoom,加我请注明Akka实战,谢谢。

? ? ? 下面先来张图镇楼:

?

为什么写本书?? ? ?

? ? ? ? 在互联网+的今天,人们在PC、手机、Pad上安装了各式各样的软件服务或APP,享受着互联网技术带来的高效和便捷。同时,随着这些产品的高速发展,用户规模急剧扩大,系统承载能力会逐渐达到瓶颈,一些早期不常出现的问题也会慢慢浮出水面。实际上,系统开发者们也越来越重视软件的稳定性、高可用性、扩展性对用户体验的影响,大家纷纷使出浑身解数,实践出多个构建大型应用所需要的技术架构,在这些架构方案中,有几个词始终不绝于耳,那就是:“高并发”、“分布式”、“高可用”。
? ? ? ? ?对于很多工程师来讲,这几个词可谓“既爱又恨”,"爱"是因为大家都希望能掌握大型分布式系统架构所涉及到的各个知识点,在产品不断迭代更新,并持续服务好用户的同时,也能够进一步提升自己的技术实力和技术视野,可谓"产品"和"技术"共同成长;“恨”是因为很多产品并没有机会"跑"成大型系统,工程师们也就没有机会去解决大型系统才会出现的扩展性问题,再加上目前市面上的一些分布式架构解决方案确实都存在不小的门槛,让大家认为任何分布式系统(学习起来)都是如此复杂,从某种程度上,这些都限制了工程师的自我提升。后来,笔者有幸接触到了一些较大型的系统,也逐渐开始承担起技术选型的工作,以我的经验来看,当你在对整个系统架构有一定决策权的时候,就必须考虑到你所选的架构是否足够稳定、可控、可依赖,更直白点,是否足够"简单",因为只有简单的东西,才是可控的、低风险的,所以在当时,我所有的技术选型都以"简单"作为出发点,不希望将事情做的更复杂。就在我们打算为某个业务产品实现一套实时数据处理系统时,我接触到了Akka框架,在经过初步的了解后,就尝试搭建Demo工程,最开始,我们只需要一个足够简单的单机程序,不用考虑太多的扩展性问题,而Akka在单机上的并发性能也足以支撑我们当时的业务需求,但随着产品的不断迭代和更新,数据处理所需要的系统资源会突破单机的瓶颈,这时就不得不对其做水平扩展,即分布式&集群,我们发现,使用Akka做这类扩展是如此的简单,无论是单机还是分布式,它都提供了统一的编程模型,这点正好符合我的"简单"原则。Akka并非大型项目才可以使用,只要场景合适,可以从"小"用到"大",所以当你想要学习一门简单够用的分布式并行框架,可以先从Akka开始。
Akka虽然好用,但是在国内的知名度并不算太高(特别是和Java界的那几座大山相比),我个人认为,可能有两个原因:Akka是基于Scala开发的,虽然同为JVM上的语言,并且也提供了Java API,但是Scala还略显小众(语言本身还是挺棒的),大家接受程度不高;Akka在中文资料方面非常匮乏,这让很多工程师学习起来比较吃力,并且在出了问题后,不太容易找到合适的解决方案。而笔者当时也被好几个企业邀请过去做一些这方面的技术咨询和培训,期间和小伙伴儿们一起踩过不少坑,但是总算爬出来了(笑),并且还留下了一些自己做的笔记和资料,所以当时就想写一本Java版的Akka书籍,也算是为普及Akka框架做点小贡献。再后来,一个偶然的机会认识了机械工业出版社的杨福川老师,并且沟通了书籍出版的相关事宜,在他的鼓励下,我开始走上写书的道路。
? ? ? ? ?写书对我来讲,远比写代码要困难的多。写代码时,我只需要考虑当前业务场景下的功能实现,并且对于技术的运用,更多靠的是一种习惯---嗯,你就觉得该这么写,不用考虑"why",也不用考虑具体的细节。但写书需要更加全面了解整个框架结构,能够将零散的知识"点"串成一条线,然后连成一个个知识"面",虽然以前笔者有记录笔记和写博客的习惯,但是要把这些整合成一本书,还是花费了不少精力。另外,写作时间对我来说也是个问题。在去年决定要写这本书时,我正处于独立创业中,并且刚从上一个项目中抽出身来,时间相对来说比较充裕,所以趁热打铁,很快交出了第一稿。正当我为自己的写作进度而感到开心时,一个新的创业机会向我招手了,然后我来到现在这家公司。加入新公司后,我几乎把所有精力都投入到了新产品的研发和管理工作上,所以写书一事也只能暂缓了。在这期间,我一直得到家人朋友,包括福川老师的支持和鼓励,自己对完成此书的愿望也越来越强,所以我不敢(也不想)有任何懈怠,一直尽可能挤出空闲时间用于写作,终于,在搭上了多个"不那么忙"的周日后,我完成了本书。

?

本书的内容
? ? ? ?据笔者了解,目前国内还没有一本真正意义上的Akka原创书籍,而网上流传的一些相关资料同质化又比较严重,同时对Java版进行全面介绍的也非常少,这些都对初学者产生了很大的干扰。本书以Java版为基础,将Akka的各个知识点都做了较为全面的介绍,并且每个知识点都附带了详细的代码示例和配置加以说明,相信读者朋友们可以很快上手。
? ? ? ?本书一共分为十个章节,全面介绍了Akka的基础架构、Actor模型、常用组件、分布式&集群、微服务等。下面是各个章节的简介及阅读说明。
? ? ? ?第1章 主要介绍了Akka的技术背景、应用场景及架构体系,为大家日后做技术选型提供参考依据。
? ? ? ?第2章 全面介绍了Actor的相关概念、常见用法、生命周期、容错处理等。Actor可谓是Akka最核心的组件,所有其他功能都是围绕它来构建,所以对其理解越深刻,越有助于后续内容的学习。
? ? ? ?第3章 介绍了Dispatcher的用途和常见配置方法,对其进行合理的配置,可以有效提高系统吞吐。
? ? ? ?第4章 介绍了邮箱的常见类型及配置,同时也给出了一个自定义邮箱类型的简单案例。
? ? ? ?第5章 介绍了消息路由器的基本概念和创建方式(Pool和Group),然后分别演示了"广播"、"最快响应" 等常见路由策略。本章的示例都是基于本地系统,但实际上它可以无缝切换成远程模式,即在分布式集群环境下(具体会在7、8章进行介绍),路由功能也是完全可用的。
? ? ? ?第6章 介绍了Akka的一些实用工具包,比较重要的有Future、Event Bus(事件总线)、Akka Streams等。其中Future可以接收Actor的计算结果,并通过多种方式对结果进行处理;事件总线实现了基于发布-订阅的消息流处理,解决耦合问题;Akka Streams是基于 Reactive Streams的一个实现,它提供的“背压”(BackPressure)机制用于解决大规模数据处理带来的生产和消费速度不均的问题,并以此实现流控。Akka Streams的内容较多且复杂,大家可以先从本章进行入门,更多详细内容请参考官方文档
? ? ? ?第7、8章 主要介绍了Akka分布式&集群相关的内容,如远程Actor、远程路由、事件监听、集群搭建、集群分片、持久化等, 相信大家通过书中示例,可以很快搭建自己的分布式应用。??
? ? ? ?第9章? 主要介绍了如何使用Akka构建HTTP和WebSocket服务,并完整实现了一个图文聊天系统。
? ? ? ?第10章 主要介绍了一款“全家桶式”的微服务框架Lagom,它基于Akka和Play而构建,提供了一整套微服务解决方案。虽然在Java界已经有了Spring Boot或Spring Cloud这类“既叫好又叫座”的微服务框架了,但是大家不妨也看看Lagom,或许能带给你新的思路呢?

勘误与反馈说明
由于笔者水平有限,并且写作时间略显仓促,书中难免会出现一些错误或不准确的地方,还请大家多多批评指正。假如您在阅读本书的过程中,有任何更好的意见或建议,希望您能通过微信duyunfeiRoom、邮箱angel6380@126.com联系我。非常期待得到大家的反馈,多谢!

致谢
? ? ? 本书得以顺利出版,首先要感谢机械工业出版社的杨福川老师,正是因为他的信任,才让我能有机会写作本书。由于今年实在太过忙碌,导致中途屡次拖稿,但是每次都能得到福川老师的理解与鼓励,这使我备受感动!同时也感谢我的编辑小艺和李雷鸣,在审稿期间给了我很多好的建议,很佩服你们的“火眼金睛”!
另外,也感谢参与为本书写推荐序的多位技术专家们,平日里,我会经常阅读他们的文章、博客和公众号,也和他们进行过多次交流和讨论,总是受益匪浅,能邀请到他们,是我的荣幸!
? ? ? ?最后,写书的过程辛苦且漫长,很感谢家人、朋友的支持与陪伴,你们给了我最大动力!

?

最后的最后,京东官方预定地址(也有电子版哦):https://item.jd.com/12345168.html

  • 相关文章
发表评论
用户名: 匿名