产品特色
编辑推荐
(1)作者是资深Java技术专家,Akka领域的布道者和实践者,从事软件开发和架构近10年,现任上海小虫科技CTO。
(2)本书以实战为导向,从Akka架构、组件、工具包、分布式、集群、微服务等多个角度展开,为构建高可用、高性能、分布式应用提供了详尽指导。
内容简介
Akka是一款非常优秀的分布式并行应用框架,它为快速构建高性能、高可用的分布式应用提供了良好的解决方案。
本书是资深Java技术专家在大量实践后的经验与教训的总结,以实战为导向,从架构、组件、工具包、分布式&集群、微服务等多个角度对Akka进行了详细的讲解,为快速构建高可用、高性能的分布式应用提供了详尽指导。每个知识点都配备了详细的代码示例和配置说明,实操性极强。
全书一共10章:
第1章全面介绍了Akka的概念、应用场景和系统架构,为技术团队全面了解Akka和技术选型提供了参考依据;
第2~5章详细讲解了Akka的各种模型&组件的原理及用法,如Actor、线程调度(Dispatcher)、邮箱和消息路由等;
第6章介绍了Akka的一些实用工具包,如Future、Event Bus、Akka Streams等;
第7~8章主要讲解了Akka分布式&集群相关的内容,如远程Actor、远程路由、事件监听、集群搭建、集群分片、持久化等;
第9章讲解了如何使用Akka构建HTTP和WebSocket服务,并实现了一个完整的图文聊天系统。
第10章介绍了一款“全家桶式”的微服务框架Lagom,它基于Akka和Play而构建,提供了一整套微服务解决方案。
作者简介
杜云飞
资深Java技术专家,上海小虫科技合伙人兼CTO,在Akka方面有丰富的实践经验。
从事软件开发和架构近10年,擅长Java体系下各项技术,在大型企业软件平台(如制造业ERP、财税云平台、智慧城市服务平台、电商系统等)的开发和架构方面经验丰富。
曾穿梭于各个技术岗位之间,并乐此不彼,期间独立创业近两年。多次受邀为惠普、通用等企业做技术分享、培训和咨询。
精彩书评
Akka 是一款优秀的分布式并发框架,虽然它是基于 Scala 语言实现的,但我们却可轻松地将其运行在JVM上,在不改变现有架构的基础上支持更高的并发量。另一方面,Akka 是一款轻量级开源技术,它既具备良好的性能,也具备优秀的扩展性,非常适合应用在微服务架构中。写书是一件很有挑战的工作,尤其是IT技术类原创图书,相信云飞这本书能为读者提供帮助。
——黄勇 特赞科技CTO/《架构探险》作者
学习并掌握一个分布式并行应用框架,已经成为当下对普通程序员的基本要求。Akka以其高性能、高容错性,恰巧可以作为一个基础学习框架。作者在Akka方面不仅有丰富的实战经验,并且善于将实战中的各种要点和实践,以通俗易懂的方式呈现在本书中。对于广大程序员而言,本书是对官方文档的补充和解释,强烈推荐!
——陆舟 社区技术专家/《Struts2技术内幕》作者
Akka的文档稀缺、学习曲线偏高、难以上手……现在,国内终于有了一本Akka的专著。本书系统讲解了Akka的方方面面,既有Akka本身的特性,也有Akka的周边生态,理论与实践并重,值得一读。
——周立 《Spring Cloud与Docker微服务架构实战》作者
目前市面上关于Akka的资料比较少,为了帮助读者更好地了解并使用Akka,作者从实战的角度全面介绍了它,读者朋友们可以借助本书快速构建自己的高可用的分布式并行应用,非常值得一读。
——占军(占小狼)美团点评基础架构组技术专家
目录
Contents
前言
第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 本章小结
Akka实战:快速构建高可用分布式应用 电子书 下载 mobi epub pdf txt