Akka实战:快速构建高可用分布式应用 作者:杜云飞 出版时间:2018年版内容简介 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而构建,提供了一整套微服务解决方案。目录Contents 目录前言第1章 认识Akka11.1 Akka简介11.1.1 技术背景11.1.2 Akka是什么31.2 Akka应用场景41.3 Akka架构体系41.3.1 Actor模型41.3.2 体系结构41.4 本章小结7第2章 走进Actor82.1 Actor组件82.1.1 Akka中的Actor82.1.2 ActorSystem与监管92.1.3 生命周期监控92.1.4 引用与路径102.2 Akka环境搭建102.2.1 环境准备112.2.2 使用Lightbend Activator平台122.3 创建一个Actor142.3.1 定义Actor142.3.2 创建Actor实例142.3.3 工厂模式---Props/Creator152.4 发送-接收消息162.4.1 tell方法162.4.2 ask方法172.4.3 消息转发182.5 查找一个Actor182.6 消息不可变212.7 Actor行为切换212.8 Actor生命周期252.9 停掉一个Actor262.10 监督与容错处理292.11 Circuit Breaker(熔断)332.12 配置相关352.13 本章小结36第3章 线程调度383.1 什么是Dispatcher?383.2 Executor选择393.3 配置Dispatcher393.4 使用Dispatcher413.5 PinnedDispatcher413.6 本章小结42第4章 邮箱434.1 消息处理顺序434.2 默认邮箱配置444.3 内置邮箱454.3.1 内置邮箱说明454.3.2 自定义优先级454.3.3 控制指令优先484.4 Actor使用邮箱的多种方式494.4.1 配置Actor邮箱494.4.2 配置dispatcher邮箱494.4.3 实现RequiresMessageQueue接口504.5 自定义邮箱类型504.6 本章小结52第5章 消息路由535.1 Router和Routee535.2 路由器及路由逻辑535.3 路由Actor565.3.1 Pool方式565.3.2 Group方式585.4 常见路由类型595.4.1 广播-Broadcast605.4.2 快响应-ScatterGatherFirstCompleted615.4.3 随机-快响应-TailChopping625.4.4 创建可修改容量的池625.5 特殊消息处理635.5.1 Broadcast消息645.5.2 PoisonPill消息645.5.3 其他管理类消息645.6 本章小结65第6章 实用工具676.1 定时调度—Scheduler676.2 处理并发结果—Future686.2.1 Future常规用法686.2.2 函数式Future706.3 事件总线726.3.1 实现事件总线726.3.2 事件流处理746.4 日志处理756.4.1 基础配置766.4.2 使用slf4j766.5 Akka扩展786.5.1 TypedActor初探786.5.2 自定义扩展816.5.3 集成Spring836.6 Akka I/O876.6.1 TCP服务876.6.2 UDP服务906.7 Akka Streams916.7.1 Streams组件916.7.2 组合Source、Sink946.7.3 案例:日志处理956.7.4 错误处理996.7.5 关联Actor1016.8 本章小结102第7章 远程1037.1 远程介绍1037.1.1 Java RPC1037.1.2 Akka远程1067.2 创建远程ActorSystem1077.3 Actor远程访问1087.4 创建远程Actor1097.5 远程路由器1107.6 远程事件1137.7 序列化1147.7.1 Protobuf框架1147.7.2 序列化API1157.8 本章小结116第8章 集群1178.1 Akka集群概述1178.1.1 种子节点1188.1.2 领导节点1188.1.3 节点状态及生命周期1188.1.4 故障检测1198.2 创建Akka集群1198.2.1 代码及集群配置1198.2.2 启动集群1228.2.3 加入集群1238.2.4 akka-cluster集群工具1238.3 集群示例—实现文章单词统计1258.3.1 示例分析1258.3.2 代码实现1278.4 使用路由1338.4.1 Group路由1338.4.2 Pool路由1338.5 集群指标1368.5.1 指标收集1368.5.2 基于指标的负载均衡1388.6 集群单例1398.7 集群客户端1408.7.1 集群客户端概述1408.7.2 使用 ClusterClient1418.7.3 事件监听1428.8 集群分片1438.8.1 分片概念1438.8.2 持久化Actor1448.8.3 分片示例1488.9 本章小结155第9章 HTTP服务1569.1 HTTP协议1569.1.1 header信息1579.1.2 状态码1599.2 Akka HTTP1599.2.1 配置依赖1599.2.2 HTTP服务端1609.2.3 请求和响应1609.2.4 HTTP客户端1639.2.5 使用Routing DSL1639.2.6 常用Directive1659.3 Akka WebSocket1669.3.1 WebSocket协议1679.3.2 Akka WebSocket1679.3.3 WebSocket应用之聊天室1699.4 本章小结176第10章 微服务全家桶之Lagom17710.1 Lagom简介17710.2 Lagom初探17810.3 搭建Lagom服务18110.3.1 项目结构18110.3.2 编写Lagom服务18210.4 持久化实体18610.4.1 持久化简介18610.4.2 PersistentEntity API18710.4.3 持久化示例18710.4.4 MySQL支持19110.5 Lagom部署(SandBox)19210.5.1 安装ConductR SandBox19210.5.2 部署Maven项目19510.6 本章小结199 上一篇: 高等学校计算机基础教育规划教材 Visual FoxPro数据库及面向对象程序设计基础实验指导及习题 下一篇: Hadoop应用开发基础 刘雯 2019年版