Erlang/OTP並發編程實戰

Erlang/OTP並發編程實戰 pdf epub mobi txt 電子書 下載2025

出版者:人民郵電齣版社
作者:[美] Martin Logan
出品人:
頁數:356
译者:連城
出版時間:2012-7-12
價格:79.00元
裝幀:平裝
isbn號碼:9787115285591
叢書系列:圖靈程序設計叢書
圖書標籤:
  • erlang
  • 並發編程
  • Erlang/OTP
  • Erlang
  • 編程
  • 計算機
  • 函數式編程
  • 程序設計
  • Erlang
  • OTP
  • 並發編程
  • 實戰
  • 分布式係統
  • 高並發
  • 函數式編程
  • 容錯
  • 輕量級進程
  • 消息傳遞
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

內容簡介:

通過提高CPU時鍾頻率來製造更快的單核芯片的技術已經到達瞭極限。多核、並發、分布式等概念和技術也隨之走齣象牙塔,成為每個一綫開發者的必備技能。由通信巨頭愛立信研發的Erlang/OTP大放異彩,二十多年來,在傳統電信領域高並發、高可靠、高容錯的嚴酷環境下,Erlang語言和OTP平颱被鍛煉得堅如磐石,濃鬱的函數式特質更是恰到好處地彌補瞭傳統命令式語言在並發編程上的固有缺陷,大大降低瞭構築並發、容錯、分布式應用的門檻。

如果將Erlang語言看成纔華橫溢的鋼琴傢,那麼OTP平颱就是一架能讓鋼琴傢把纔能發揮得淋灕盡緻的鋼琴。本書除瞭全麵介紹Erlang語言和OTP平颱的基礎知識外,還通過一係列實用案例引領你深入瞭解OTP的高級特性,一步步構建一個大型生産係統,並加以優化和完善。三位作者在Erlang領域擁有極其豐富的實戰經驗,細緻入微地剖析瞭OTP開發與部署的全過程。要想真刀真槍地上戰場,本書纔是你明智的選擇!

著者簡介

作者簡介:

Martin Logan 從1999年開始活躍於Erlang社區,後來全職從事Erlang研發。目前任職於全球最大的在綫旅遊公司Orbitz Worldwide,為基於大規模分布式服務的基礎設施開發解決方案。Erlware聯閤創始人,核心開發人員,Erlang/OTP軟件包管理係統Faxien的主要開發者。

Eric Merritt 專注並發編程和分布式係統。曾任職於Amazon.com,現為eCD Market軟件工程師。Erlware聯閤創始人,Erlang芝加哥用戶組核心成員。Erlware團隊開源産品核心開發人員,Erlang/OTP構建係統Sinan的主要開發者。

Richard Carlsson 瑞典烏普薩拉大學高性能Erlang計劃(HiPE)早期成員,研究Erlang技術達17年,曾為標準庫、Erlang編譯器、運行時係統和Erlang語言本身都作齣過不少貢獻。此外,他還是Erlang文檔係統EDoc和單元測試框架EUnit的創建者。目前加入瞭Kreditor,緻力於高可用性支付係統的Erlang開發。

譯者簡介:

連城

百度資深軟件工程師,《Erlang並發編程(第一部分)》社區翻譯項目組織者及主要譯者。對分布式存儲、分布式消息係統、程序語言設計實現抱有濃厚興趣。

圖書目錄

目  錄

第一部分 Erlang起步:OTP基礎
第1章 Erlang/OTP平颱 2
1.1 基於進程的並發編程 3
1.1.1 理解並發 3
1.1.2 Erlang的進程模型 4
1.1.3 4種進程通信範式 5
1.1.4 用Erlang進程編程 8
1.2 Erlang的容錯架構 10
1.2.1 進程鏈接如何工作 10
1.2.2 監督與退齣信號捕捉 10
1.2.3 進程的分層容錯 12
1.3 分布式Erlang 13
1.4 Erlang運行時係統和虛擬機 13
1.4.1 調度器 14
1.4.2 I/O與調度 15
1.4.3 進程隔離與垃圾迴收器 15
1.5 函數式編程:Erlang的處世之道 16
1.6 小結 16
第2章 Erlang語言精要 18
2.1 Erlang shell 19
2.1.1 啓動shell 19
2.1.2 輸入錶達式 20
2.1.3 shell函數 21
2.1.4 退齣shell 21
2.1.5 任務控製基礎 22
2.2 Erlang的數據類型 23
2.2.1 數值與算術運算 24
2.2.2 二進製串與位串 25
2.2.3 原子 26
2.2.4 元組 27
2.2.5 列錶 27
2.2.6 字符串 28
2.2.7 pid、端口和引用 29
2.2.8 將函數視作數據:fun函數 30
2.2.9 項式的比較 30
2.2.10 解讀列錶 31
2.3 模塊和函數 33
2.3.1 調用其他模塊中的函數(遠程調用) 33
2.3.2 不同元數的函數 34
2.3.3 內置函數和標準庫模塊 34
2.3.4 創建模塊 35
2.3.5 模塊的編譯和加載 36
2.3.6 獨立編譯器erlc 37
2.3.7 已編譯模塊與在shell中求值 37
2.4 變量與模式匹配 38
2.4.1 變量的語法 39
2.4.2 單次賦值 39
2.4.3 模式匹配:加強版的賦值 41
2.4.4 解讀模式 42
2.5 函數與子句 44
2.5.1 帶副作用的函數:文本打印 44
2.5.2 用模式匹配在多個子句中進行選擇 45
2.5.3 保護式 46
2.5.4 模式、子句和變量作用域 47
2.6 Case和if錶達式 48
2.6.1 Erlang的布爾型if-then-else
分支選擇 48
2.6.2 If錶達式 49
2.7 fun函數 49
2.7.1 作為現有函數彆名的fun函數 49
2.7.2 匿名fun函數 50
2.8 異常與try/catch 52
2.8.1 拋齣(觸發)異常 52
2.8.2 運用try...catch 53
2.8.3 try...of...catch 53
2.8.4 after 54
2.8.5 獲取棧軌跡 54
2.8.6 重拋異常 55
2.8.7 傳統的catch 55
2.9 列錶速構 56
2.9.1 列錶速構記法 56
2.9.2 映射、過濾和模式匹配 56
2.10 比特位語法與位串速構 57
2.10.1 構造位串 57
2.10.2 比特位語法中的模式匹配 58
2.10.3 位串速構 59
2.11 記錄語法 59
2.11.1 記錄聲明 60
2.11.2 創建記錄 60
2.11.3 記錄的字段以及模式匹配 60
2.11.4 更新記錄字段 60
2.11.5 記錄聲明應該放在哪兒 61
2.12 預處理與文件包含 61
2.12.1 宏的定義和使用 61
2.12.2 文件包含 62
2.12.3 條件編譯 63
2.13 進程 64
2.13.1 操縱進程 64
2.13.2 消息接收與選擇性接收 65
2.13.3 注冊進程 66
2.13.4 消息投遞與信號 67
2.13.5 進程字典 67
2.14 ETS錶 68
2.14.1 為何ETS錶被設計成這樣 68
2.14.2 ETS錶的基本用法 68
2.15 以遞歸代替循環 69
2.15.1 從迭代到遞歸 69
2.15.2 理解尾遞歸 71
2.15.3 纍加器參數 72
2.15.4 談談效率 72
2.15.5 編寫遞歸函數的竅門 73
2.16 Erlang編程資源 78
2.16.1 圖書 78
2.16.2 在綫資料 79
2.17 小結 79
第3章 開發基於TCP的RPC服務 80
3.1 你所創建的是什麼 81
3.1.1 基礎知識提醒 82
3.1.2 行為模式基礎 82
3.2 實現RPC服務器 85
3.2.1 行為模式實現模塊的典型布局 85
3.2.2 模塊首部 85
3.2.3 API段 88
3.2.4 迴調函數段 92
3.3 運行RPC服務器 98
3.4 淺談測試 99
3.5 小結 100
第4章 OTP應用與監督機製 101
4.1 OTP應用 101
4.1.1 OTP應用的組織形式 102
4.1.2 為應用添加元數據 103
4.1.3 應用行為模式 104
4.1.4 應用結構小結 105
4.2 用監督者實現容錯 105
4.2.1 實現監督者 106
4.2.2 監督者重啓策略 107
4.2.3 編寫子進程規範 108
4.3 啓動應用 109
4.4 生成EDoc文檔 110
4.5 小結 110
第5章 主要圖形化監測工具的使用 112
5.1 Appmon 112
5.1.1 Appmon GUI 112
5.1.2 WebTool版Appmon 115
5.2 Pman 116
5.3 調試器 118
5.4 錶查看器TV 121
5.5 工具欄 123
5.6 小結 123
第二部分 構建生産係統
第6章 打造一套緩存係統 126
6.1 故事背景 126
6.2 緩存的設計 127
6.3 創建OTP應用的基本骨架 130
6.3.1 應用目錄結構的布局 130
6.3.2 創建應用元數據 130
6.3.3 實現應用行為模式 131
6.3.4 實現監督者 131
6.4 從應用骨架到五髒俱全的緩存 133
6.4.1 編寫sc_element進程 134
6.4.2 實現sc_store模塊 138
6.4.3 打造應用層API模塊 142
6.5 小結 144
第7章 Erlang/OTP中的日誌與事件
處理 145
7.1 Erlang/OTP中的日誌 146
7.1.1 日誌概述 146
7.1.2 Erlang/OTP內置的日誌設施 147
7.1.3 標準日誌函數 147
7.1.4 SASL與崩潰報告 149
7.2 用gen_event編寫自定義事件
處理器 153
7.2.1 gen_event行為模式簡介 153
7.2.2 事件處理器示例 154
7.2.3 處理錯誤事件 155
7.3 為Simple Cache添加自定義事件流 157
7.3.1 事件流API 157
7.3.2 將處理器整閤進Simple Cache 159
7.3.3 訂閱自定義事件流 161
7.4 小結 162
第8章 分布式Erlang/OTP簡介 163
8.1 Erlang分布式基礎 163
8.1.1 復製式進程間通信 164
8.1.2 位置透明性 165
8.2 節點與集群 166
8.2.1 節點的啓動 166
8.2.2 節點的互聯 167
8.2.3 Erlang節點如何定位其他節點並與之建立通信 169
8.2.4 magic cookie安全係統 170
8.2.5 互聯節點間的消息傳遞 171
8.2.6 使用遠程shell 173
8.3 資源探測攻略 175
8.3.1 術語 175
8.3.2 算法 176
8.3.3 實現資源探測應用 177
8.4 小結 182
第9章 用Mnesia為cache增加分布
式支持 183
9.1 分布式緩存 184
9.1.1 選取通信策略 184
9.1.2 同步緩存和異步緩存 186
9.1.3 分布式錶 188
9.2 用Mnesia實現分布式數據存儲 189
9.2.1 建立項目數據庫 189
9.2.2 初始化數據庫 191
9.2.3 建錶 192
9.2.4 嚮錶中錄入數據 195
9.2.5 執行基本查詢 197
9.3 基於Mnesia的分布式緩存 199
9.3.1 用Mnesia取代ETS 199
9.3.2 讓緩存識彆齣其他節點 202
9.3.3 用資源探測定位其他緩存
實例 205
9.3.4 動態復製Mnesia錶 206
9.4 小結 209
第10章 打包、服務和部署 210
10.1 從係統的角度看應用 210
10.1.1 結構 211
10.1.2 元數據 211
10.1.3 係統如何管理運行中的
應用 212
10.2 製作發布鏡像 213
10.2.1 發布鏡像 213
10.2.2 準備發布代碼 214
10.2.3 發布鏡像的元數據文件 214
10.2.4 腳本與啓動文件 216
10.2.5 係統配置 217
10.2.6 啓動目標係統 218
10.3 發布鏡像打包 219
10.3.1 創建發布鏡像包 219
10.3.2 發布鏡像包的內容 220
10.3.3 定製發布鏡像包 222
10.4 安裝發布鏡像 223
10.5 小結 223
第三部分 集成與完善
第11章 為緩存添加HTTP接口 226
11.1 實現TCP服務器 226
11.1.1 高效TCP服務器的設計
模式 227
11.1.2 搭建tcp_interface應用的
骨架 228
11.1.3 填充TCP服務器的實現
邏輯 228
11.1.4 簡單文本協議 231
11.1.5 文本接口實現 232
11.2 打造一套全新的Web接口 234
11.2.1 HTTP簡介 234
11.2.2 實現一套通用的Web服務
器行為模式 237
11.2.3 初識REST 248
11.2.4 用gen_web_server實現
REST式協議 249
11.3 小結 252
第12章 用端口和NIF集成外圍代碼 253
12.1 端口和NIF 254
12.1.1 普通端口 255
12.1.2 鏈入式端口驅動 256
12.1.3 原生函數(NIF) 257
12.2 用端口來集成解析器 257
12.2.1 Erlang方麵的端口 257
12.2.2 C方麵的端口 260
12.2.3 編譯運行 271
12.3 開發鏈入式驅動 272
12.3.1 初識鏈入式驅動 273
12.3.2 驅動的C語言部分 274
12.3.3 編譯驅動代碼 278
12.3.4 驅動的Erlang部分 279
12.4 將解析器實現為NIF 280
12.4.1 NIF的Erlang部分 280
12.4.2 NIF的C代碼部分 281
12.4.3 編譯與運行代碼 287
12.5 小結 288
第13章 用Jinterface實現Erlang和
Java間的通信 289
13.1 利用Jinterface在Erlang中集成
Java 290
13.1.1 OtpNode類 290
13.1.2 OtpMbox類 291
13.1.3 Erlang數據結構的Java
映射 291
13.1.4 示例:Java中的消息處理 292
13.1.5 在Erlang中與Java節點
通信 294
13.2 安裝和配置HBase 296
13.2.1 下載和安裝 296
13.2.2 配置HBase 296
13.3 為Simple Cache和HBase牽綫
搭橋 297
13.3.1 Erlang方麵:sc_hbase.erl 298
13.3.2 HBaseConnector類 299
13.3.3 Java中的消息處理 301
13.3.4 HBaseTask類 304
13.4 在Simple Cache中整閤HBase 306
13.4.1 查詢 306
13.4.2 插入 307
13.4.3 刪除 307
13.5 運行集成係統 308
13.6 小結 310
第14章 優化與性能 311
14.1 如何進行性能調優 312
14.1.1 設定性能目標 312
14.1.2 設定基綫 313
14.1.3 係統性能分析 313
14.1.4 確定需要解決的問題 313
14.1.5 測定優化成果 313
14.2 Erlang代碼性能分析 314
14.2.1 用cprof計算調用次數 314
14.2.2 用fprof測定執行時間 316
14.3 Erlang編程語言的缺陷 320
14.3.1 基本數據類型的性能特點 321
14.3.2 內置函數和運算符的性能 324
14.3.3 函數 325
14.3.4 進程 327
14.4 小結 329
附錄A 安裝Erlang 330
附錄B 列錶與引用透明性 332
· · · · · · (收起)

讀後感

評分

这是一个可以让我在Erlang学习道路上进阶的书,深入Erlang OTP,学习在实践中如何构建,以及一些技巧,理解OTP原则。 但新手莫入,否则一头雾水,找不着北,这不是一本Erlang入门的书,谨记! 看之前,需要优先阅读一遍<<Erlang 程序设计>>(http://book.douban.com/subject/326...

評分

这是一个可以让我在Erlang学习道路上进阶的书,深入Erlang OTP,学习在实践中如何构建,以及一些技巧,理解OTP原则。 但新手莫入,否则一头雾水,找不着北,这不是一本Erlang入门的书,谨记! 看之前,需要优先阅读一遍<<Erlang 程序设计>>(http://book.douban.com/subject/326...

評分

这是我第一次写书评,我实在是忍不住了。我第一次见到这么频繁出现的“译者注”,如果译者自己真的有那么东西想说,请另辟蹊径。连“这个……真的是不敢苟同哇”的无营养的吐槽都要写到“译者注”里面,这不知道译者是带着什么样的心态去翻译,且不说学术水平如何,起码对人的...  

評分

这是我第一次写书评,我实在是忍不住了。我第一次见到这么频繁出现的“译者注”,如果译者自己真的有那么东西想说,请另辟蹊径。连“这个……真的是不敢苟同哇”的无营养的吐槽都要写到“译者注”里面,这不知道译者是带着什么样的心态去翻译,且不说学术水平如何,起码对人的...  

評分

这是我第一次写书评,我实在是忍不住了。我第一次见到这么频繁出现的“译者注”,如果译者自己真的有那么东西想说,请另辟蹊径。连“这个……真的是不敢苟同哇”的无营养的吐槽都要写到“译者注”里面,这不知道译者是带着什么样的心态去翻译,且不说学术水平如何,起码对人的...  

用戶評價

评分

現在來看,內容有部分過時,並且也沒有足夠深入。

评分

好書

评分

翻的不錯。

评分

真不錯!

评分

深入淺齣啊~~, 偏工程,但是好像少瞭熱更新啊

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有