高伸縮性系統:Erlang/OTP大型分佈式容錯設計 高伸缩性系统:Erlang/OTP大型分布式容错设计

弗朗西斯科·切薩里尼 (Francesco Cesarini), 史蒂夫·溫斯基 (Steve Vinoski)

立即出貨

買這商品的人也買了...

商品描述

《高伸縮性系統:Erlang/OTP大型分佈式容錯設計》內容提要
《高伸縮性系統:Erlang/OTP大型分佈式容錯設計》是一本罕見的站在核心設計者而非普通開發者角度介紹 Erlang/OTP系統的權威書籍。兩位作者均是深耕分佈式計算領域超過20年的專家。《高伸縮性系統:Erlang/OTP大型分佈式容錯設計》內容兼具深度與廣度,不僅帶領讀者通過一步步實踐的方式深入剖析了 Erlang/OTP中各類核心進程的行為模式的設計原理,並且還介紹了特殊進程、自定義行為模式、發行包製作等高級主題。除此之外,還用了大量篇幅向讀者介紹了 Erlang/OTP系統中的設計原則、架構分佈式系統的方法,以及在此基礎上實現容錯和規模伸縮所需瞭解的相關知識。
對於任何一位渴望基於 Erlang/OTP構建出商業級的分佈式、高伸縮性、容錯型系統的開發者,《高伸縮性系統:Erlang/OTP大型分佈式容錯設計》都是不容錯過的經典之作。

目錄大綱

第1mso-hansi-font-family:Calibri"章概述 1

定義問題 2

OTP 4

Erlang 6

工具和庫 7

設計原則 9

Erlang Calibri;mso-hansi-font-family:Calibri"節點 10

分佈式、基礎設施、多核 11

總結 12

通過本書你將學到什麼 13

第2mso-hansi-font-family:Calibri"章Erlang.簡介. 18

遞歸與模式匹配 18

受函數式的影響 22

玩轉匿名函數 22

列表推導:生成與測試 23

進程與消息傳遞 25

不怕出錯 30

用於監督的鏈接與監視器 31

鏈接 31

監視器 33

記錄 34

映射組 37

宏 38

模塊升級 39

ETSmso-hansi-font-family:Calibri":Erlang 元素存儲 41

分佈式Erlang 44

命名與通信 45

節點間的連接與可見性 45

總結 47

接下來是什麼 47

第3mso-hansi-font-family:Calibri"章行為模式. 49

進程的骨架 49

設計模式 52

回調模塊 53

抽取出通用的行為模式 56

啟動server 57

clientmso-hansi-font-family:Calibri"函數 60

servermso-hansi-font-family:Calibri"循環 62

servermso-hansi-font-family:Calibri"內部函數 64

通用服務器 65

消息傳遞:冰山之下 68

總結 71

接下來是什麼 72

第4mso-hansi-font-family:Calibri"章通用型服務器.gen_server. 73

gen_server 73

behaviorCalibri;mso-hansi-font-family:Calibri"指令 74

啟動一個server 75

消息傳遞 77

同步式消息傳遞 78

異步式消息傳遞 79

其他消息 81

未處理的消息 82

同步客戶端 83

終止 84

調用超時 86

死鎖 89

通用型serverCalibri;mso-hansi-font-family:Calibri"的超時問題 90

使behaviorCalibri;mso-hansi-font-family:Calibri"休眠 92

全局化 92

鏈接behavior 94

總結 94

接下來是什麼 95

第5mso-hansi-font-family:Calibri"章深入控制OTP行為模式 96

sysmso-hansi-font-family:Calibri"模塊 96

追踪與記錄 96

消息 98

你自己的追踪函數 98

統計信息和當前狀態 99

sys mso-hansi-font-family:Calibri"模塊總結 102

分裂時的可選項 103

內存管理與垃圾回收 104

分裂時應該避免使用的可選項 108

超時 109

總結 109

接下來是什麼 109

第6mso-hansi-font-family:Calibri"章有限狀態機. 110

Erlang Calibri;mso-hansi-font-family:Calibri"風格的有限狀態機 111

Coffee FSM 112

硬件樁 114

Erlang Calibri;mso-hansi-font-family:Calibri"版咖啡機 114

gen_fsm 118

一個基於行為模式的例子 119

啟動FSM 119

發送事件 123

終止 132

總結 133

親力親為 134

電話控制器 134

讓我們測試一下 136

接下來是什麼 138

第7mso-hansi-font-family:Calibri"章事件處理器. 139

事件 139

通用事件管理器/處理器 141

啟動/停止事件管理器 141

添加事件處理器 142

刪除事件處理器 144

發送同步的或異步的事件 145

獲取數據 148

對以及無效返回值的處理 150

交換事件處理器 152

融會貫通 154

SASLmso-hansi-font-family:Calibri"警報處理器 157

總結 159

接下來是什麼 159

第8mso-hansi-font-family:Calibri"章監督者 160

監督樹 161

OTPmso-hansi-font-family:Calibri"監督者 165

監督者行為模式 166

啟動監督者 166

監督者規格 169

動態子進程 176

非OTPmso-hansi-font-family:Calibri"兼容進程 184

可伸縮性和短期進程 186

確定性同步啟動 187

測試你的監督策略 188

與傳統方法相比又如何 190

總結 190

接下來是什麼 191

第.9.mso-hansi-font-family:Calibri"章OTP.application 192

OTP applicationCalibri;mso-hansi-font-family:Calibri"是如何運行的 193

OTP applicationCalibri;mso-hansi-font-family:Calibri"的結構 194

回調模塊 198

啟動和停止application 198

applicationCalibri;mso-hansi-font-family:Calibri"資源文件 202

基站控制器的applicationCalibri;mso-hansi-font-family:Calibri"文件 204

啟動application 205

環境變量 208

applicationCalibri;mso-hansi-font-family:Calibri"的類型與終止策略 210

分佈式application 211

分階段啟動 215

內含型application 217

內含型application Calibri;mso-hansi-font-family:Calibri"的分階段啟動 217

將監督者與applicationCalibri;mso-hansi-font-family:Calibri"組合到一起 219

SASLmso-hansi-font-family:Calibri"應用 220

進度報告 224

報告 225

崩潰報告 226

監督者報告 227

總結 228

接下來是什麼 229

第.10.mso-hansi-font-family:Calibri"章基於特殊進程打造自己的behavior 230

特殊進程 230

互斥體 231

啟動特殊進程 232

互斥體的狀態 235

處理退出 236

消息 237

跟踪與日誌事件 238

合在一起 239

動態模塊和休眠 243

屬於你自己的behavior 244

創建behavior Calibri;mso-hansi-font-family:Calibri"時的要求 245

一個處理TCPmso-hansi-font-family:Calibri"流的例子 245

總結 249

接下來是什麼 250

第11mso-hansi-font-family:Calibri"章原則與發行包製作. 251

原則
  252

發行包目錄結構 253

發行包資源文件 257

創建發行包 260

創建boot mso-hansi-font-family:Calibri"文件 262

打包發行包 271

啟動腳本以及目標上的配置 275

參數和標誌 277

initmso-hansi-font-family:Calibri"模塊 289

rebar3 290

生成一個rebar3 Calibri;mso-hansi-font-family:Calibri"發行包項目 292

使用rebar3 Calibri;mso-hansi-font-family:Calibri"創建發行包 295

使用rebar3 Calibri;mso-hansi-font-family:Calibri"處理製作發行包時的項目依賴問題 298

總結 300

接下來是什麼 304

第12mso-hansi-font-family:Calibri"章發行包升級 305

軟件升級 305

個版本的咖啡機FSM 308

添加一個新狀態 311

為發行包創建升級 314

負責升級的代碼 318

應用程序升級文件 322

指令 325

發行包升級文件 328

低級指令 330

安裝升級 332

發行包處理器 334

升級環境變量 338

升級特殊進程 338

在分佈式環境下升級 339

升級模擬器和核心application 340

使用Rebar3Calibri;mso-hansi-font-family:Calibri"進行升級 341

總結 344

接下來是什麼 346

第13mso-hansi-font-family:Calibri"章分佈式架構 347

節點類型與家族 348

聯網 351

分佈式Erlang 353

套接字與SSL 359

面向服務和微服務的架構 361

點對點 362

接口 364

總結 366

接下來是什麼 367

第.14.mso-hansi-font-family:Calibri"章停止的 368

可用性 368

容錯 369

彈性 370

可靠性 371

數據共享 375

一致性和可用性之間的權衡 383

總結 384

接下來是什麼 385

第.15.mso-hansi-font-family:Calibri"章水平規模伸縮 386

水平規模伸縮與垂直規模伸縮 386

容量規劃 390

容量測試 392

平衡你的 394

找尋瓶頸 396

藍圖 398

負載調節與背壓 399

總結 401

接下來是什麼 403

第16mso-hansi-font-family:Calibri"章監視與搶救性支持 404

監視 405

日誌 406

指標 411

警報 414

搶救性支持 416

總結 418

接下來是什麼 420

索引 421