內容簡介
如果你需要構建一個具有高可用性需求的可擴展容錯係統,請瞭解為什麼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 電子書