買這商品的人也買了...
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
VIP 95折
深入淺出 SSD 測試 : 固態存儲測試流程 方法與工具$594$564 -
VIP 95折
MCP 開發從入門到實戰$515$489 -
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
RISC-V 架構 DSP 處理器設計$534$507 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
85折
$454RAG 實踐權威指南:構建精準、高效大模型之道 -
VIP 95折
CUDA 並行編程與性能優化$714$678 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
VIP 95折
大模型驅動的具身智能 架構,設計與實現$534$507 -
VIP 95折
納米級CMOS VLSI電路(可制造性設計)$474$450 -
VIP 95折
Manus應用與AI Agent設計指南:從入門到精通$359$341 -
87折
$360高薪Offer 簡歷、面試、談薪完全攻略 -
VIP 95折
軟件系統優化$534$507 -
VIP 95折
芯片的較量 (日美半導體風雲)$414$393 -
VIP 95折
Manus AI 智能體從入門到精通$294$279 -
87折
$981深度學習:基礎與概念 -
85折
$505GitHub Copilot 編程指南 -
87折
$469Cursor 與 Copilot 開發實戰 : 讓煩瑣編程智能化 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
Verilog HDL 計算機網絡典型電路算法設計與實現$354$336 -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673
簡體館年度書展|現貨2書79折3書75折 詳見活動內容 »
-
85折
$806Linux x64 匯編語言編程 -
VIP 95折
MCP 極簡開發 : 輕鬆打造高效智能體$479$455 -
VIP 95折
硬件系統模糊測試:技術揭秘與案例剖析$419$398 -
VIP 95折
生成式視覺模型原理與實踐$288$274 -
87折
$459AI大模型:賦能通信產業 -
VIP 95折
科學預測——預見科學之美$408$388 -
VIP 95折
Processing創意編程入門:從編程原理到項目案例$299$284 -
87折
$360高薪Offer 簡歷、面試、談薪完全攻略 -
VIP 95折
軟件系統優化$534$507 -
85折
$505GitHub Copilot 編程指南 -
85折
$551C#核心編程200例(視頻課程+全套源程序) -
VIP 95折
SAAS + AI 架構實戰:業務解析、架構設計、AI 應用$708$673 -
VIP 95折
深入淺出 Docker, 2/e$419$398 -
85折
$658Unity 特效制作:Shader Graph 案例精講 -
79折
$275零基礎玩轉國產大模型DeepSeek -
VIP 95折
人工智能大模型:機器學習基礎$774$735 -
VIP 95折
RAG 極簡入門:原理與實踐$419$398 -
VIP 95折
大模型實戰 : 從零實現 RAG 與 Agent 系統$419$398 -
VIP 95折
算法趣學(第2版)$348$331 -
VIP 95折
大模型理論與實踐——打造行業智能助手$354$336 -
85折
$509生成式人工智能 (基於 PyTorch 實現) -
VIP 95折
機器人抓取力學$894$849 -
VIP 95折
集成電路版圖設計從入門到精通$474$450 -
VIP 95折
Java 學習筆記, 6/e$839$797 -
VIP 95折
ZBrush遊戲角色設計(第2版)$479$455
相關主題
商品描述
全書分為2篇:
1.第1篇詳細介紹Go語言高效能優勢是如何實現的,包括經典的GMP調度模型,
Go語言調度器的實現,垃圾回收,以及如何基於管道、鎖等並發程式設計。
2.第二篇主要是專案實戰,手把手帶領讀者從0開始搭建高效能、高穩定的Go服務。
以及在面對線上問題時,如何調試、分析、解決。
透過學習本書,讀者對Go語言的核心——高並發會有一個深刻的認識,具備一定的Go並發程式設計經驗,
能夠獨立完成高效能、高穩定Go服務的架構設計,並且能夠基於一些工具進行Go線上問題分析與效能調優。
作者簡介
李樂,Golang開發專家、西安電子科技大學碩士,曾就職於滴滴、好未來,樂於鉆研技術與源碼,合著有《Redis 5設計與源碼分析》《Nginx底層設計與源碼分析》。
目錄大綱
目錄 Contents
前言
第1章 為什麼要瞭解Go底層1
1.1 Go服務怎麼出現502狀態碼了1
1.1.1 服務超時為什麼導致502狀態碼1
1.1.2 基於context的超時控制4
1.2 Go服務為什麼沒回應了7
1.2.1 誰阻塞了協程7
1.2.2 寫入管道可以不阻塞協程嗎10
1.3 Uber如何透過GC調優節約7萬個核心11
1.3.1 GC概述11
1.3.2 Uber半自動化GC調優13
1.4 Go語言進階路線15
1.4.1 Go語言快速入門16
1.4.2 Go高並發程式20
1.4.3 Go語言計畫實戰22
1.5 本章小結24
第2章 Go語言並發模型25
2.1 GMP調度模型25
2.1.1 Go語言並發程式設計入門25
2.1.2 GMP調度模型概述27
2.1.3 深入理解GMP調度模型30
2.2 協程管理33
2.2.1 基礎補充33
2.2.2 協程創建37
2.2.3 協程切換40
2.2.4 協程棧會溢位嗎42
2.2.5 協程退出45
2.3 調度器46
2.3.1 調度器實作原理46
2.3.2 時間片調度49
2.3.3 基於協作的搶佔式調度52
2.3.4 基於訊號的搶佔式調度53
2.4 本章小結54
第3章 調度器觸發時機55
3.1 網絡I/O56
3.1.1 探索Go語言網絡I/O56
3.1.2 Go語言網絡I/O與調度器59
3.1.3 如何實現網絡讀寫逾時62
3.2 管道65
3.2.1 管道的基本用法65
3.2.2 管道與調度器67
3.3 定時器70
3.3.1 定時器的基本用法70
3.3.2 定時器與調度器73
3.4 系統呼叫75
3.4.1 系統呼叫會阻塞執行緒嗎75
3.4.2 系統呼叫與調度器77
3.5 本章小結79
第4章 Go語言並發程式設計80
4.1 什麼是並發問題80
4.2 CSP並發模型84
4.2.1 基於管道-協程的CSP模型84
4.2.2 管道與select關鍵字86
4.2.3 如何實現無限快取管道89
4.3 基於鎖的協程同步91
4.3.1 樂觀鎖91
4.3.2 悲觀鎖93
4.4 如何並發操作map95
4.4.1 map的並發問題96
4.4.2 並發散列表sync.Map98
4.5 並發控制sync.WaitGroup101
4.6 並發物件池sync. Pool103
4.7 如何實現單例模式104
4.8 並發檢測105
4.9 本章小結106
第5章 GC原理、調度與調優108
5.1 內存管理108
5.1.1 如何設計動態內存分配器108
5.1.2 Go語言內存分配器110
5.1.3 Go語言內存管理111
5.1.4 內存逃逸113
5.2 三色標記與寫屏障114
5.2.1 三色標記115
5.2.2 寫屏障117
5.3 標記與清理119
5.3.1 垃圾回收執行階段120
5.3.2 經典的stopTheWorld123
5.3.3 輔助標記125
5.3.4 內存清理127
5.4 GC調度與GC調優128
5.4.1 GC觸發時機128
5.4.2 GC協程調度模式131
5.4.3 快取框架bigcache中的GC調優133
5.5 本章小結135
第6章 手把手教你搭建Go專案136
6.1 Go專案架構設計 136
6.1.1 分層架構136
6.1.2 程式碼佈局138
6.1.3 命令管理cobra140
6.1.4 配置管理Viper142
6.2 Web框架Gin145
6.2.1 RESTful API145
6.2.2 引入Gin框架146
6.2.3 中間件149
6.2.4 如何記錄訪問日誌152
6.3 日誌與全鏈路追蹤154
6.3.1 引入日誌框架Zap154
6.3.2 基於context的全鏈路追蹤157
6.3.3 基於協程ID的全鏈路追蹤159
6.4 存取數據庫161
6.4.1 引入Gorm框架161
6.4.2 CURD165
6.4.3 事務170
6.4.4 如何記錄Trace日誌172
6.5 HTTP調用173
6.5.1 go-resty框架概述174
6.5.2 請求追蹤176
6.5.3 長連接還是短連接178
6.5.4 如何記錄Trace日誌180
6.6 單元測試181
6.6.1 Go語言中的單元測試181
6.6.2 引入單元測試183
6.7 本章小結184
第7章 高效能Go服務開發186
7.1 分庫分錶186
7.1.1 分庫分錶基本原理186
7.1.2 基於Gorm的分錶189
7.2 使用Redis快取191
7.2.1 go-redis的基本操作191
7.2.2 基於Redis的效能最佳化193
7.3 使用本地快取196
7.3.1 自己實作一個LRU緩存196
7.3.2 基於bigcache的效能最佳化198
7.4 資源復用200
7.4.1 協程復用之fasthttp200
7.4.2 連接復用之連接池203
7.4.3 物件複用之物件池205
7.5 其他207
7.5.1 異步化處理207
7.5.2 無鎖定程式設計209
7.6 本章小結210
第8章 高可用Go服務開發211
8.1 可用性定義與高可用三板斧 211
8.1.1 可用性定義211
8.1.2 高可用三板斧213
8.2 流量治理組件Sentinel215
8.2.1 Sentinel快速入門215
8.2.2 流量控制218
8.2.3 系統自適應流量控制220
8.2.4 熔斷降級222
8.2.5 Sentinel原理淺析224
8.3 Go服務監控225
8
