第 1章 概述 1
定义问题 2
OTP 4
Erlang 6
工具和库 7
系统设计原则 9
Erlang 节点 10
分布式、基础设施、多核 11
总结 12
通过本书你将学到什么 13
第 2章 Erlang.简介. 18
递归与模式匹配 18
受函数式的影响 22
玩转匿名函数 22
列表推导:生成与测试 23
进程与消息传递 25
不怕出错 30
用于监督的链接与监视器 31
链接 31
监视器 33
记录 34
映射组 37
宏 38
模块升级 39
ETS:Erlang 元素存储 41
分布式 Erlang 44
命名与通信 45
节点间的连接与可见性 45
总结 47
接下来是什么 47
第 3章 行为模式. 49
进程的骨架 49
设计模式 52
回调模块 53
抽取出通用的行为模式 56
启动 server 57
client函数 60
server循环 62
server内部函数 64
通用服务器 65
消息传递:冰山之下 68
总结 71
接下来是什么 72
第 4章 通用型服务器.gen_server. 73
gen_server 73
behavior指令 74
启动一个 server 75
消息传递 77
同步式消息传递 78
异步式消息传递 79
其他消息 81
未处理的消息 82
同步客户端 83
终止 84
调用超时 86
死锁 89
通用型 server的超时问题 90
使 behavior休眠 92
全局化 92
链接 behavior 94
总结 94
接下来是什么 95
第 5章 深入控制 OTP行为模式 96
sys模块 96
追踪与记录 96
系统消息 98
你自己的追踪函数 98
统计信息和当前状态 99
sys 模块总结 102
分裂时的可选项 103
内存管理与垃圾回收 104
分裂时应该避免使用的可选项 108
超时 109
总结 109
接下来是什么 109
第 6章 有限状态机. 110
Erlang 风格的有限状态机 111
Coffee FSM 112
硬件桩 114
Erlang 版咖啡机 114
gen_fsm 118
一个基于行为模式的例子 119
启动 FSM 119
发送事件 123
终止 132
总结 133
亲力亲为 134
电话控制器 134
让我们测试一下 136
接下来是什么 138
第 7章 事件处理器. 139
事件 139
通用事件管理器/处理器 141
启动/停止事件管理器 141
添加事件处理器 142
删除事件处理器 144
发送同步的或异步的事件 145
获取数据 148
对错误以及无效返回值的处理 150
交换事件处理器 152
融会贯通 154
SASL警报处理器 157
总结 159
接下来是什么 159
第 8章 监督者 160
监督树 161
OTP监督者 165
监督者行为模式 166
启动监督者 166
监督者规格 169
动态子进程 176
非 OTP兼容进程 184
可伸缩性和短期进程 186
确定性同步启动 187
测试你的监督策略 188
与传统方法相比又如何 190
总结 190
接下来是什么 191
第.9.章 OTP.application 192
OTP application是如何运行的 193
OTP application的结构 194
回调模块 198
启动和停止 application 198
application资源文件 202
基站控制器的 application文件 204
启动 application 205
环境变量 208
application的类型与终止策略 210
分布式 application 211
分阶段启动 215
内含型 application 217
内含型 application 的分阶段启动 217
将监督者与 application组合到一起 219
SASL应用 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
参数和标志 277
init模块 289
rebar3 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
· · · · · · (
收起)