您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Akka实战
Java专家大量实践后的经验与教训的总结
装帧: 平装
出版社: 机械工业出版社
作者: 杜云飞 著
出版日期: 2018-04-01
商品条码: 9787111596851
版次: 1
开本: 16开
页数: 199
出版年份: 2018
定价:
¥69
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书一共分为10章,全面介绍了Akka的基础架构、Actor模型、常用组件、分布式&集群、微服务等。下面是各个章节的简介及阅读说明。靠前章介绍了Akka的技术背景、应用场景及架构体系,为大家日后做技术选型提供参考依据。第2章介绍了Actor的相关概念、常见用法、生命周期、容错处理等。第3章介绍了Dispatcher的用途和常见配置方法。第4章介绍了邮箱的常见类型及配置,同时也给出了一个自定义邮箱类型的简单案例。第5章介绍了消息路由器的基本概念和创建方式(Pool和Group),然后分别演示了几种常见路由策略。第6章介绍了Akka的一些实用工具包,如Future、EventBus等。第7、8章介绍了Akka分布式&集群相关的内容。第9章介绍了如何使用Akka构建HTTP和WebSocket服务,并完整实现了一个图文聊天系统。靠前0章介绍了一款“全家桶式”的微服务框架Lagom。
作者简介
杜云飞,Java技术专家,上海小虫科技合伙人兼CTO,在Akka方面有丰富的实践经验。从事软件开发和架构近10年,擅长Java体系下各项技术,在大型企业软件平台(如制造业ERP、财税云平台、智慧城市服务平台、电商系统等)的开发和架构方面经验丰富。曾穿梭于各个技术岗位之间,并乐此不彼,期间独立创业近两年。多次受邀为惠普、通用等企业做技术分享、培训和咨询。
目录
前言
第1章 认识Akka
1.1 Akka简介
1.1.1 技术背景
1.1.2 Akka是什么
1.2 Akka应用场景
1.3 Akka架构体系
1.3.1 Actor模型
1.3.2 体系结构
1.4 本章小结
第2章 走进Actor
2.1 Actor组件
2.1.1 Akka中的Actor
2.1.2 ActorSystem与监管
2.1.3 生命周期监控
2.1.4 引用与路径
2.2 Akka环境搭建
2.2.1 环境准备
2.2.2 使用Lightbend Activator平台
2.3 创建一个Actor
2.3.1 定义Actor
2.3.2 创建Actor实例
2.3.3 工厂模式——-Props/Creator
2.4 发送-接收消息
2.4.1 tell方法
2.4.2 ask方法
2.4.3 消息转发
2.5 查找一个Actor
2.6 消息不可变
2.7 Actor行为切换
2.8 Actor生命周期
2.9 停掉一个Actor
2.10 监督与容错处理
2.11 Circuit Breaker(熔断)
2.12 配置相关
2.13 本章小结
第3章 线程调度
3.1 什么是Dispatcher?
3.2 Executor选择
3.3 配置Dispatcher
3.4 使用Dispatcher
3.5 PinnedDispatcher
3.6 本章小结
第4章 邮箱
4.1 消息处理顺序
4.2 默认邮箱配置
4.3 内置邮箱
4.3.1 内置邮箱说明
4.3.2 自定义优先级
4.3.3 控制指令优先
4.4 Actor使用邮箱的多种方式
4.4.1 配置Actor邮箱
4.4.2 配置dispatcher邮箱
4.4.3 实现RequiresMessageQueue接口
4.5 自定义邮箱类型
4.6 本章小结
第5章 消息路由
5.1 Router和Routee
5.2 路由器及路由逻辑
5.3 路由Actor
5.3.1 Pool方式
5.3.2 Group方式
5.4 常见路由类型
5.4.1 广播-Broadcast
5.4.2 最快响应-ScatterGatherFirstCompleted
5.4.3 随机-最快响应-TailChopping
5.4.4 创建可修改容量的池
5.5 特殊消息处理
5.5.1 Broadcast消息
5.5.2 PoisonPill消息
5.5.3 其他管理类消息
5.6 本章小结
第6章 实用工具
6.1 定时调度-Scheduler
6.2 处理并发结果-Future
6.2.1 Future常规用法
6.2.2 函数式Future
6.3 事件总线
6.3.1 实现事件总线
6.3.2 事件流处理
6.4 日志处理
6.4.1 基础配置
6.4.2 使用slf4j
6.5 Akka扩展
6.5.1 TypedActor初探
6.5.2 自定义扩展
6.5.3 集成Spring
6.6 Akka I/O
6.6.1 TCP服务
6.6.2 UDP服务
6.7 Akka Streams
6.7.1 Streams组件
6.7.2 组合Source、Sink
6.7.3 案例:日志处理
6.7.4 错误处理
6.7.5 关联Actor
6.8 本章小结
第7章 远程
7.1 远程介绍
7.1.1 Java RPC
7.1.2 Akka远程
7.2 创建远程ActorSystem
7.3 Actor远程访问
7.4 创建远程Actor
7.5 远程路由器
7.6 远程事件
7.7 序列化
7.7.1 Protobuf框架
7.7.2 序列化API
7.8 本章小结
第8章 集群
8.1 Akka集群概述
8.1.1 种子节点
8.1.2 领导节点
8.1.3 节点状态及生命周期
8.1.4 故障检测
8.2 创建Akka集群
8.2.1 代码及集群配置
8.2.2 启动集群
8.2.3 加入集群
8.2.4 akka-cluster集群工具
8.3 集群示例-实现文章单词统计
8.3.1 示例分析
8.3.2 代码实现
8.4 使用路由
8.4.1 Group路由
8.4.2 Pool路由
8.5 集群指标
8.5.1 指标收集
8.5.2 基于指标的负载均衡
8.6 集群单例
8.7 集群客户端
8.7.1 集群客户端概述
8.7.2 使用 ClusterClient
8.7.3 事件监听
8.8 集群分片
8.8.1 分片概念
8.8.2 持久化Actor
8.8.3 分片示例
8.9 本章小结
第9章 HTTP服务
9.1 HTTP协议
9.1.1 header信息
9.1.2 状态码
9.2 Akka HTTP
9.2.1 配置依赖
9.2.2 HTTP服务端
9.2.3 请求和响应
9.2.4 HTTP客户端
9.2.5 使用Routing DSL
9.2.6 常用Directive
9.3 Akka WebSocket
9.3.1 WebSocket协议
9.3.2 Akka WebSocket
9.3.3 WebSocket应用之聊天室
9.4 本章小结
第10章 微服务全家桶之Lagom
10.1 Lagom简介
10.2 Lagom初探
10.3 搭建Lagom服务
10.3.1 项目结构
10.3.2 编写Lagom服务
10.4 持久化实体
10.4.1 持久化简介
10.4.2 PersistentEntity API
10.4.3 持久化示例
10.4.4 MySQL支持
10.5 Lagom部署(SandBox)
10.5.1 安装ConductR SandBox
10.5.2 部署Maven项目
10.6 本章小结
摘要
Preface 前 言为何写作本书在大力提倡互联网+的今天,人们在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的各个知识点都做了较为全面的介绍,并且每个知识点都附带了详细的代码示例,也对配置进行了说明,相信读者朋友们可以很快上手。 本书读者对象Java工程师系统架构师分布式系统爱好者高校师生及IT培训机构相关人员如何阅读本书本书一共分为10章,全面介绍了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的一个实现,它提供的“背压”(Back Pressure)机制用于解决大规模数据处理带来的生产和消费速度不均的问题,并以此实现流控。Akka Streams的内容较多且复杂,大家可以通过本章入门,更多详细的内容请参考官方文档。 第7章和第8章主要介绍了Akka分布式&集群相关的内容,如远程Actor、远程路由、事件监听、集群搭建、集群分片、持久化等,相信大家通过书中的示例,可以很快搭建自己的分布式应用。 第9章主要介绍了如何使用Akka构建HTTP和WebSocket服务,并完整实现了一个图文聊天系统。 第10章主要介绍了一款“全家桶式”的微服务框架Lagom,它是基于Akka和Play构建的,提供了一整套微服务解决方案。虽然在Java界已经有了Spring Boot或Spring Cloud这类“既叫好又叫座”的微服务框架,但是大家不妨也看看Lagom,或许能带给你新的思路。 勘误与反馈由于水平有限,写作时间仓促,书中难免会出现一些错误或不准确的地方,还请大家多多批评指正。假如你在阅读本书的过程中,有任何更好的意见或建议,希望能通过微信duyunfeiRoom、邮箱angel6380@126.com与我联系。非常期待得到大家的反馈,多谢! 致谢本书得以顺利出版,首先要感谢机械工业出版社的杨福川老师,正是因为他的信任,才让我能有机会完成本书。由于今年实在太过忙碌,导致中途屡次拖稿,但是每次都能得到福川老师的理解与鼓励,这使我备受感动!同时也感谢我的编辑小艺和李雷鸣,他们在审稿期间给了我很多好的建议,很佩服你们的“火眼金睛”! 另外,也感谢为本书写推荐序的多位技术专家们。平日里,我会经常阅读他们的文章、博客和公众号,也和他们进行过多次交流和讨论,总是受益匪浅,能邀请到他们,是我的荣幸! 写书的过程辛苦且漫长,很感谢家人、朋友的支持与陪伴,你们是我最大的动力! 杜云飞2018年1月于上海
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网