《高伸缩性系统 Erlang/OTP大型分布式容错设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(英)Francesco Cesarini(弗朗西斯科 切萨里尼),(美)Steve Vinosk
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121337475
  • 页数:438 页
图书介绍:本书介绍如何使用开放式电信平台(Open Telecom Platform,OTP,由Ericsson用Erlang语言开发)设计和构建复杂的、可扩展的商业级系统。通过这本指导手册,你将学会如何将OTP库和技术应用于并发、容错、无单点错误的系统。本书将向你介绍OTP的基础和Erlang的设计模式,以及该平台可以如何应用于广泛的行业。如果你学过Erlang,你还将会学到如何克服OTP的多数开发者会遇到的主要障碍。

第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章 通用型服务器 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 application 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