從零構建編排器(Go語言)
[美] 蒂姆·博林(Tim Boring) 著 殷海英 譯
- 出版商: 清華大學
- 出版日期: 2026-03-01
- 定價: $479
- 售價: $478
- 語言: 簡體中文
- ISBN: 7302710481
- ISBN-13: 9787302710486
-
相關分類:
大數據 Big-data
- 此書翻譯自: Build an Orchestrator in Go (from Scratch)
下單後立即進貨 (約4週~6週)
商品描述
作者簡介
目錄大綱
目 錄
第1章 編排器概述 2
1.1 為什麼從零開始實現一個編排器 2
1.2 苦樂參半的往日時光 3
1.3 什麼是容器,它與虛擬機有何不同 4
1.4 什麼是編排器 6
1.5 編排系統的組件 6
1.5.1 任務 7
1.5.2 作業 7
1.5.3 調度器 8
1.5.4 管理器 8
1.5.5 工作節點 8
1.5.6 集群 9
1.5.7 命令行接口 9
1.6 認識Cube 11
1.7 本書將使用哪些工具 12
1.8 關於硬件 13
1.9 本書未涉及的內容 15
1.9.1 分布式計算 15
1.9.2 服務發現 15
1.9.3 高可用性 15
1.9.4 負載均衡 16
1.9.5 安全性 17
本章小結 17
第2章 從思維模型到基礎代碼 18
2.1 任務框架 20
2.2 工作節點框架 22
2.3 管理器框架 24
2.4 調度器框架 25
2.5 其他框架 26
2.6 讓框架運轉起來 27
本章小結 30
第3章 為任務框架補充細節 31
3.1 Docker:通過命令行啟動、停止和檢查容器 32
3.2 Docker:通過API啟動、停止和檢查容器 34
3.3 任務配置 36
3.4 啟動和停止任務 37
本章小結 44
第4章 Cube的工作節點們,團結起來 47
4.1 Cube的工作節點 47
4.2 任務與Docker 50
4.3 隊列的作用 50
4.4 數據庫的作用 51
4.5 計數任務 51
4.6 實現工作節點的方法 51
4.6.1 實現StopTask方法 52
4.6.2 實現StartTask方法 53
4.6.3 關於任務狀態的插曲 54
4.6.4 實現RunTask方法 57
4.7 整合所有內容 58
本章小結 60
第5章 工作節點的API 61
5.1 工作節點API概述 62
5.2 數據格式、請求與響應 63
5.3 API結構體 65
5.4 處理請求 66
5.5 提供API 69
5.6 整合所有內容 70
本章小結 75
第6章 指標 76
6.1 應該收集哪些指標數據 77
6.2 從/proc文件系統獲取的指標數據 78
6.3 使用goprocinfo收集指標數據 80
6.4 在API上暴露指標數據 84
6.5 整合所有內容 86
本章小結 88
第7章 管理器的引入 90
7.1 Cube管理器 91
7.2 Manager結構體 92
7.3 實現管理器的方法 93
7.3.1 實現SelectWorker方法 93
7.3.2 實現SendWork方法 95
7.3.3 實現UpdateTasks方法 96
7.3.4 向管理器添加任務 98
7.3.5 創建管理器 98
7.4 故障與彈性能力的討論 99
7.5 整合所有內容 99
本章小結 104
第8章 管理器的 API 105
8.1 管理器API概述 105
8.2 路由 106
8.3 數據格式、請求和響應 107
8.4 API結構體 108
8.5 處理請求 109
8.6 提供API服務 111
8.7 提升便利性的幾項重構 112
8.8 整合所有內容 113
本章小結 118
第9章 可能出現的問題 119
9.1 新場景概述 119
9.2 故障場景 120
9.2.1 應用啟動失敗 120
9.2.2 應用程序錯誤 121
9.2.3 資源問題導致的任務啟動失敗 121
9.2.4 Docker守護進程崩潰和重啟導致的任務失敗 121
9.2.5 機器崩潰和重啟導致的任務失敗 122
9.2.6 工作節點故障 122
9.2.7 管理器故障 122
9.3 恢復選項 122
9.3.1 從應用故障中恢復 123
9.3.2 從環境故障中恢復 123
9.3.3 從任務級故障中恢復 123
9.3.4 從工作節點故障中恢復 124
9.3.5 從管理器故障中恢復 125
9.4 實現健康檢查 126
9.4.1 檢查工作節點上的任務 126
9.4.2 在工作節點上實現任務更新 128
9.4.3 健康檢查與重啟 129
9.5 整合所有內容 133
本章小結 138
第10章 實現一個更復雜的調度器 140
10.1 調度問題 140
10.2 調度時應考慮的事項 141
10.3 調度器接口 141
10.4 將輪詢調度器適配到調度器接口 143
10.5 使用新的調度器接口 145
10.5.1 向Manager結構體添加新字段 145
10.5.2 修改New幫助函數 146
10.5.3 修改管理器的多個方法 147
10.6 你註意到這個bug了嗎 149
10.7 整合所有內容 150
10.8 E-PVM調度器 153
10.8.1 相關理論 153
10.8.2 實踐中的應用 154
10.9 完成 Node 實現 158
10.10 使用E-PVM調度器 161
本章小結 162
第11章 實現任務的持久化存儲 163
11.1 存儲問題 163
11.2 Store接口 164
11.3 實現任務的內存存儲 166
11.4 實現任務事件的內存存儲 168
11.5 重構管理器以使用新的內存存儲 169
11.6 重構工作節點 174
11.7 整合所有內容 178
11.8 引入BoltDB 179
11.9 實現持久化任務存儲 180
11.10 實現持久化任務事件存儲 184
11.11 將內存存儲替換為持久化存儲 187
本章小結 188
第12章 構建命令行接口 190
12.1 CLI的核心組件 191
12.2 引入Cobra框架 192
12.3 設置Cobra應用程序 192
12.4 理解新的main.go 193
12.5 理解root.go 193
12.6 實現worker命令 195
12.7 實現manager命令 200
12.8 實現run命令 203
12.9 實現stop命令 208
12.10 實現status命令 210
12.11 實現node命令 212
本章小結 215
第13章 展望未來 216
13.1 參與Kubernetes及相關工具的開發 216
13.2 管理器-工作節點模式與工作流系統 217
13.3 管理器-工作節點模式與集成系統 217
13.4 結束語 218
附錄 環境設置 219



