第 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
· · · · · · (
收起)