高伸缩性系统:ErlangOTP大型分布式容错设计 (瑞典)弗朗西斯科·切萨里尼(Francescopdf下载

高伸缩性系统:ErlangOTP大型分布式容错设计 (瑞典)弗朗西斯科·切萨里尼(Francesco百度网盘pdf下载

作者:
简介:高伸缩性系统:ErlangOTP大型分布式容错设计 (瑞典)弗朗西斯科·切萨里尼(Francesco
出版社:
出版时间:2018-06
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:高伸缩性系统:Erlang/OTP大型分布式容错设计

定价:115元

作者:(瑞典)弗朗西斯科·切萨里尼(Francesco Cesarini),(美)史蒂夫·温斯基(Steve Vinoski) 著;林建入 译

出版社:电子工业出版社

出版日期:2018-06-01

ISBN:9787121337475

字数:636000

页码:436

版次:1

装帧:平装

开本:16开

商品重量:

编辑推荐


适读人群 :本书面向Erlang程序员,以及对Erlang/OTP感兴趣的开发人员。

如果你需要设计一套规模可伸缩且具有高可用性的容错系统,那么 Erlang/OTP 平台值得你去深入了解,因为其适用领域广阔、技术积累深厚,具备丰富功能的同时又贯彻了高度一致的设计思想。这本实践指南展示了使用 Erlang 编程语言及其 OTP 框架(其中包含许多可复用的库、工具和设计原则等),你将可以基于简单的理念开发出复杂的商业级别的系统,并具备故障免疫能力。

探索 OTP 的基石:Erlang 编程语言、相关工具、可复用的库集合,以及相关抽象理念与设计规则。

深入 OTP 实现可复用性的核心机制:各类进程行为模式内部涉及的 Erlang 进程结构。

理解 OTP 中进程行为模式是如何为客户端-服务器结构、有限状态机模式、事件处理、运行时、代码集成等功能提供支持的。

编写自己的进程行为模式以及特殊进程。

使用 OTP 提供的工具、技术与架构来处理部署、监视和运维等。


内容提要


这是一本罕见的站在核心设计者而非普通开发者角度介绍 Erlang/OTP 系统的书籍。两位作者均是深耕分布式计算领域超过20年的专家。本书内容兼具深度与广度,不仅带领读者通过一步步实践的方式深入剖析了 Erlang/OTP 中各类核心进程的行为模式的设计原理,并且还介绍了特殊进程、自定义行为模式、发行包制作等不错主题。除此之外,还用了大量篇幅向读者介绍了 Erlang/OTP 系统中的设计原则、架构分布式系统的方法,以及在此基础上实现容错和规模伸缩所需了解的相关知识。对于任何一位渴望基于 Erlang/OTP 构建出商业级的分布式、高伸缩性、容错型系统的开发者,本书都是不容错过的经典之作。

目录


章  概述1
定义问题2
OTP4
Erlang6
工具和库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
分布式Erlang44
命名与通信45
节点间的连接与可见性45
总结47
接下来是什么47
第3章  行为模式.49
进程的骨架49
设计模式52
回调模块53
抽取出通用的行为模式56
启动server57
client函数60
server循环62
server内部函数64
通用服务器65
消息传递:冰山之下68
总结71
接下来是什么72
第4章  通用型服务器.gen_server.73
gen_server73
behavior指令74
启动一个server75
消息传递77
同步式消息传递78
异步式消息传递79
其他消息81
未处理的消息82
同步客户端83
终止84
调用超时86
死锁89
通用型server的超时问题90
使behavior休眠92
全局化92
链接behavior94
总结94
接下来是什么95
第5章  深入控制OTP行为模式96
sys模块96
追踪与记录96
系统消息98
你自己的追踪函数98
统计信息和当前状态99
sys模块总结102
分裂时的可选项103
内存管理与垃圾回收104
分裂时应该避免使用的可选项108
超时109
总结109
接下来是什么109
第6章  有限状态机.110
Erlang风格的有限状态机111
CoffeeFSM112
硬件桩114
Erlang版咖啡机114
gen_fsm118
一个基于行为模式的例子119
启动FSM119
发送事件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.application192
OTPapplication是如何运行的193
OTPapplication的结构194
回调模块198
启动和停止application198
application资源文件202
基站控制器的application文件204
启动application205
环境变量208
application的类型与终止策略210
分布式application211
分阶段启动215
内含型application217
内含型application的分阶段启动217
将监督者与application组合到一起219
SASL应用220
进度报告224
错误报告225
崩溃报告226
监督者报告227
总结228
接下来是什么229
0章  基于特殊进程打造自己的behavior230
特殊进程230
互斥体231
启动特殊进程232
互斥体的状态235
处理退出236
系统消息237
跟踪与日志事件238
合在一起239
动态模块和休眠243
属于你自己的behavior244
创建behavior时的要求245
一个处理TCP流的例子245
总结249
接下来是什么250
1章  系统原则与发行包制作.251
系统原则252
发行包目录结构253
发行包资源文件257
创建发行包260
创建boot文件262
打包发行包271
启动脚本以及目标上的配置275
参数和标志277
init模块289
rebar3290
生成一个rebar3发行包项目292
使用rebar3创建发行包295
使用rebar3处理制作发行包时的项目依赖问题298
总结300
接下来是什么304
2章  发行包升级305
软件升级305
个版本的咖啡机FSM308
添加一个新状态311
为发行包创建升级314
负责升级的代码318
应用程序升级文件322
高级指令325
发行包升级文件328
低级指令330
安装升级332
发行包处理器334
升级环境变量338
升级特殊进程338
在分布式环境下升级339
升级模拟器和核心application340
使用Rebar3进行升级341
总结344
接下来是什么346
3章  分布式架构347
节点类型与家族348
联网351
分布式Erlang353
套接字与SSL359
面向服务和微服务的架构361
点对点362
接口364
总结366
接下来是什么367
4章  永不停止的系统368
可用性368
容错369
弹性370
可靠性371
数据共享375
一致性和可用性之间的权衡383
总结384
接下来是什么385
5章  水平规模伸缩386
水平规模伸缩与垂直规模伸缩386
容量规划390
容量测试392
平衡你的系统394
找寻瓶颈396
系统蓝图398
负载调节与背压399
总结401
接下来是什么403
6章  监视与抢救性支持404
监视405
日志406
指标411
警报414
抢救性支持416
总结418
接下来是什么420
索引421

作者介绍


林建入,是一家远程工作的资历程序员,熟悉网络协议与分布式系统设计以及其他。优点是开朗、话多,热爱家庭,志存高远,亲切友好。缺点是一有机会就溜去游戏厅打拳皇,玩了20年竟也不腻,我都拍着胸口佩服我自己,但是很近总被爱妻抓回家有点困扰。

序言