内容简介
如果你需要构建一个具有高可用性需求的可扩展容错系统,请了解为什么Erlang/OTP平台因其功能的广度、深度和一致性而脱颖而出。《Erlang OTP可扩展性设计指南(影印版 英文版)》演示如何使用Erlang编程语言及其OTP框架的可重用库、工具和设计原则来开发复杂的根本不会失败的商业级系统。
在《Erlang OTP可扩展性设计指南(影印版 英文版)》的第一部分中,你将学习如何使用Erlang/OTP设计和实现进程行为与监督树,并将它们捆绑到独立节点中。第二部分涉及整体系统设计中的可靠性、可扩展性和高可用性。如果你熟悉Erlang,《Erlang OTP可扩展性设计指南(影印版 英文版)》将帮助你了解系统持续运行所需的设计选择和权衡。
目录
Preface
1.Introduction
Defining the Problem
OTP
Edang
Tools and Libraries
System Design Principles
Edang Nodes
Distribution, Infrastructure, and Multicore
Summing Up
What You'll Learn in This Book
2.Introducing Erlang
Recursion and Pattern Matching
Functional Influence
Fun with Anonymous Functions
List Comprehensions: Generate and Test
Processes and Message Passing
Fail Safe!
Links and Monitors for Supervision
Links
Monitors
Records
Maps
Macros
Upgrading Modules
ETS: Erlang Term Storage
Distributed Erlang
Naming and Communication
Node Connections and Visibility
Summing Up
What's Next?
3.Behaviors
Process Skeletons
Design Patterns
Callback Modules
Extracting Generic Behaviors
Starting the Server
The Client Functions
The Server Loop
Functions Internal to the Server
The Generic Server
Message Passing: Under the Hood
Summing Up
What's Next?
4.Genetic Servers
Generic Servers
Behavior Directives
Starting a Server
Message Passing
Synchronous Message Passing
Asynchronous Message Passing
Other Messages
Unhandled Messages
Synchronizing Clients
Termination
Call Timeouts
Deadlocks
Generic Server Timeouts
Hibernating Behaviors
Going Global
Linking Behaviors
Summing Up
What's Next?
5.Controlling 0TP Behaviors
The sys Module
6.Finite State Machines
7.Event Handlers.
8.Supervisors
9.Applications
10.Special Processes and Your Own Behaviors
11.System Principles and Release Handling
12.Release Upgrades
13.Distributed Architectures
14.Systems That Never Stop
15.Scaling Out
16.Monitoring and Preemptive Support
Index
精彩书摘
《ErlangOTP可扩展性设计指南(影印版 英文版)》:
It's important to understandthe synchronous nature of start_link and its importance to a repeatable startupsequence.The ability to deterministically reproduce an error is important when trou—bleshooting issues that occur at startup.You could asynchronously start all of theprocesses, checking each afterward to make sure they all started correctly.But as aresult of changing scheduler implementations and configuration values running onmulti—core architectures, deploying to different hardware or operating systems, oreven the state of the network connectivity, the processes would not necessarily alwaysinitialize their state and complete the startup sequence in the same order.If all goeswell, you won't have an issue with the variability inherent in an asynchronous startupapproach, but if race conditions manifest themselves, trying to figure out what wentwrong and when, especially in production environments, is not for the faint of heart.The synchronous startup approach implemented in start link clearly ensuresthrough its simplicity that each process has started correctly before moving on to the next one, providing determinism and reproducible startup errors on a single node.
……
ErlangOTP可扩展性设计指南(影印版 英文版) 电子书 下载 mobi epub pdf txt