高伸缩性系统:Erlang/OTP大型分布式容错设计作 者: [英] Francesco Cesarini(弗朗西斯科 切萨里尼),[美] Steve Vinoski(史蒂夫 温斯基) 著,林建入 出版时间: 2018 内容简介 《高伸缩性系统:Erlang/OTP大型分布式容错设计》是一本罕见的站在核心设计者而非普通开发者角度介绍 Erlang/OTP系统的优质书籍。两位作者均是深耕分布式计算领域超过20年的专家。《高伸缩性系统:Erlang/OTP大型分布式容错设计》内容兼具深度与广度,不仅带领读者通过一步步实践的方式深入剖析了 Erlang/OTP中各类核心进程的行为模式的设计原理,并且还介绍了特殊进程、自定义行为模式、发行包制作等高级主题。除此之外,还用了大量篇幅向读者介绍了 Erlang/OTP系统中的设计原则、架构分布式系统的方法,以及在此基础上实现容错和规模伸缩所需了解的相关知识。 对于任何一位渴望基于 Erlang/OTP构建出商业级的分布式、高伸缩性、容错型系统的开发者,《高伸缩性系统:Erlang/OTP大型分布式容错设计》都是不容错过的经典之作。目录第 1章 概述 1定义问题 2OTP 4Erlang 6工具和库 7系统设计原则 9Erlang 节点 10分布式、基础设施、多核 11总结 12通过本书你将学到什么 13第 2章 Erlang.简介. 18递归与模式匹配 18受函数式的影响 22玩转匿名函数 22列表推导:生成与测试 23进程与消息传递 25不怕出错 30用于监督的链接与监视器 31链接 31监视器 33记录 34映射组 37宏 38模块升级 39ETS:Erlang 元素存储 41分布式 Erlang 44命名与通信 45节点间的连接与可见性 45总结 47接下来是什么 47第 3章 行为模式. 49进程的骨架 49设计模式 52回调模块 53抽取出通用的行为模式 56启动 server 57client函数 60server循环 62server内部函数 64通用服务器 65消息传递:冰山之下 68总结 71接下来是什么 72第 4章 通用型服务器.gen_server. 73gen_server 73behavior指令 74启动一个 server 75消息传递 77同步式消息传递 78异步式消息传递 79其他消息 81未处理的消息 82同步客户端 83终止 84调用超时 86死锁 89通用型 server的超时问题 90使 behavior休眠 92全局化 92链接 behavior 94总结 94接下来是什么 95第 5章 深入控制 OTP行为模式 96sys模块 96追踪与记录 96系统消息 98你自己的追踪函数 98统计信息和当前状态 99sys 模块总结 102分裂时的可选项 103内存管理与垃圾回收 104分裂时应该避免使用的可选项 108超时 109总结 109接下来是什么 109第 6章 有限状态机. 110Erlang 风格的有限状态机 111Coffee FSM 112硬件桩 114Erlang 版咖啡机 114gen_fsm 118一个基于行为模式的例子 119启动 FSM 119发送事件 123终止 132总结 133亲力亲为 134电话控制器 134让我们测试一下 136接下来是什么 138第 7章 事件处理器. 139事件 139通用事件管理器/处理器 141启动/停止事件管理器 141添加事件处理器 142删除事件处理器 144发送同步的或异步的事件 145获取数据 148对错误以及无效返回值的处理 150交换事件处理器 152融会贯通 154SASL警报处理器 157总结 159接下来是什么 159第 8章 监督者 160监督树 161OTP监督者 165监督者行为模式 166启动监督者 166监督者规格 169动态子进程 176非 OTP兼容进程 184可伸缩性和短期进程 186确定性同步启动 187测试你的监督策略 188与传统方法相比又如何 190总结 190接下来是什么 191第.9.章 OTP.application 192OTP application是如何运行的 193OTP application的结构 194回调模块 198启动和停止 application 198application资源文件 202基站控制器的 application文件 204启动 application 205环境变量 208application的类型与终止策略 210分布式 application 211分阶段启动 215内含型 application 217内含型 application 的分阶段启动 217将监督者与 application组合到一起 219SASL应用 220进度报告 224错误报告 225崩溃报告 226监督者报告 227总结 228接下来是什么 229第.10.章 基于特殊进程打造自己的 behavior 230特殊进程 230互斥体 231启动特殊进程 232互斥体的状态 235处理退出 236系统消息 237跟踪与日志事件 238合在一起 239动态模块和休眠 243属于你自己的 behavior 244创建 behavior 时的要求 245一个处理 TCP流的例子 245总结 249接下来是什么 250第 11章 系统原则与发行包制作. 251系统原则 252发行包目录结构 253发行包资源文件 257创建发行包 260创建 boot 文件 262打包发行包 271启动脚本以及目标上的配置 275参数和标志 277init模块 289rebar3 290生成一个 rebar3 发行包项目 292使用 rebar3 创建发行包 295使用 rebar3 处理制作发行包时的项目依赖问题 298总结 300接下来是什么 304第 12章 发行包升级 305软件升级 305第一个版本的咖啡机 FSM 308添加一个新状态 311为发行包创建升级 314负责升级的代码 318应用程序升级文件 322高级指令 325发行包升级文件 328低级指令 330安装升级 332发行包处理器 334升级环境变量 338升级特殊进程 338在分布式环境下升级 339升级模拟器和核心 application 340使用 Rebar3进行升级 341总结 344接下来是什么 346第 13章 分布式架构 347节点类型与家族 348联网 351分布式 Erlang 353套接字与 SSL 359面向服务和微服务的架构 361点对点 362接口 364总结 366接下来是什么 367第.14.章 永不停止的系统 368可用性 368容错 369弹性 370可靠性 371数据共享 375一致性和可用性之间的权衡 383总结 384接下来是什么 385第.15.章 水平规模伸缩 386水平规模伸缩与垂直规模伸缩 386容量规划 390容量测试 392平衡你的系统 394找寻瓶颈 396系统蓝图 398负载调节与背压 399总结 401接下来是什么 403第 16章 监视与抢救性支持 404监视 405日志 406指标 411警报 414抢救性支持 416总结 418接下来是什么 420索引 421 上一篇: 程序员成长路线图 从入门到优秀 下一篇: 人人可做带货主播:直播时代下的营销突围