![]()
内容推荐 由美国迈克尔·纳什和加拿大韦德·沃尔德龙所合著、虞航仲翻译的《Akka应用模式--分布式应用程序设计实践指南》一书一开始介绍了Actor模型,因为该模型比其他模型更能反映现实世界。另外,本书介绍了Actor模型的一个实现框架Akka以及它的工具,而后讨论了在充分利用actor架构的基础上使用Akka框架来设计软件系统的方法,以及使用它来开发并发性和分布式应用程序的方法。本书还介绍了领域驱动设计(DDD),指导通过结合mkka、Actor模型和DDD构建强大的、高可扩展的、高可维护的系统。 遵循并灵活运用本书介绍的思路和方法,一定能创建出集可伸缩性、弹性、灵活性、长期易于维护性等优点于一身的应用程序和系统。 作者简介 Michael Nash是Lightbend 的总监。过去30 多年间,他为各种规模的公司及客户设计、开发、发布了很多软件项目。作为项目管理和架构实践的软件工艺倡导者,他是“安全堆栈”很早的实践者之一,在Scala、Akka 和Spray 方面有五年以上的工作经验。他大部分业余时间致力于“安全响应式平台”的相关工作,在会议中发表主题演讲,以及在软件相关领域撰写书籍。Wade Waldron是Lightbend 的不错顾问。他现在针对Lightbend 响应式平台提供培训和咨询服务。在Lightbend 之外,Wade 在过去9 年中一直在建立坚实的软件和游戏,重点是设计测试驱动、设计域驱动、设计面向服务的架构、设计事件驱动架构以及敏捷开发。高中开始接触编程,大学期间参加各种比赛,获得许多奖项。也因为比赛,大三就获得了微软的实习机会,学习到很多学校学不到的东西。也因此开始一有时间就会去各种公司实习,了解不同公司的企业文化。比较典型的程序员,热爱编程,喜欢研究算法,也喜欢学习各种好玩的开源项目。由于自身工作经历,对于分布式系统的实践经验有丰富的经验。 目录 前言 章 Actor 模型 现实是最终一致的 解构Actor 模型 所有的计算都在一个actor 中执行 actor 之间只能通过消息进行通信 actor 可以创建子actor actor 可以改变自己的状态或行为 一切都是actor Actor 模型的使用 定义清晰的边界 何时适合使用Actor 模型 结论 第2章 Akka 简介 Akka 是什么 Akka 是开源的 Akka 正在蓬勃发展 Akka 是为分布式设计的 Akka 组件 Akka actor 子actor remoting :不同JVM 上的actor clustering :集群成员的自动化管理 Akka HTTP TestKit contrib Akka OSGi Akka HTTP Akka Streams Akka 实现的Actor 模型 Actor 模型中的Akka actor 消息传递 actor 系统 Akka Typed 项目 结论 第3章 分布式领域驱动设计 DDD 概述 DDD 的好处 DDD 组件 域实体 域值对象 聚合与聚合根 仓储 工厂和对象创建 域服务 有界上下文 结论 第4章 优秀的Actor 设计 大系统小做 封装actor 中的状态 使用字段封装状态 使用“状态”容器封装状态 使用become 封装状态 将futures 与actors 混合 Ask 模式和替代方案 Ask 模式的问题 附带的复杂性 Ask 的替代方案 命令与事件 构造函数的依赖注入 使用路径查找actor 结论 第5章 数据流 吞吐量与延迟 流 路由器 邮箱 无界邮箱 有界邮箱 拉取的工作模式 背压 ack 高水位标记 队列长度监控 速率监控 Akka 数据流 源 汇 RunnableGraph 流 交叉点 Akka 流中的背压 Akka 流的使用 结论 第6章 一致性和可扩展性 事务和一致性 强一致性与最终一致性 并发性与并行性 为什么全局一致的分布式状态影响可扩展性 位置透明性 交付保证 最多投递一次 最少投递一次 恰好一次交付是不可能的(但可以近似做到) 如何近似做到恰好一次交付 集群单例 可扩展性 避免全局状态 避免共享状态 遵循Actor 模型 避免顺序操作 隔离阻塞型操作 监控和调优 集群分片和一致性 分片 Akka 中的分片 分片键的生成 分片的分布 一致性边界 可扩展性边界 分片聚合根 持久化 钝化 使用集群分片保证一致性 结论 第7章 容错 故障类型 异常 JVM 中的致命错误 外部服务故障 不符合服务等级协议 操作系统和硬件级故障 故障隔离 舱壁模式 优雅降级 使用Akka 集群隔离故障 使用熔断器控制故障 故障处理 异常处理 外部服务的故障处理 结论 第8章 可用性 微服务和单体式应用 用有界上下文划分微服务 细粒度的微服务 集群感知路由器 分布式数据 优雅降级 部署 分阶段部署/ 滚动重启 蓝/ 绿部署 崩溃恢复/ 运维监测 健康检查和应用状态页面 度量 日志 看门狗工具 结论 第9章 性能 隔离瓶颈 优化Akka 减少或隔离阻塞型操作 缩短消息处理时间 增加处理消息的actor 派发器 标准派发器 固定派发器 平衡派发器 calling-thread 派发器 何时使用单独的派发器 提高并行性 结论 后记 参考文献 关于作者 封面介绍 |