国产精品一久久香蕉产线看/亚洲图区欧美/亚洲国产精品电影人久久网站/欧美日韩在线视频一区

歡迎光臨中圖網 請 | 注冊
> >>
LINUX后端開發工程實踐

包郵 LINUX后端開發工程實踐

作者:萬木春
出版社:人民郵電出版社出版時間:2024-01-01
開本: 16開 頁數: 391
中 圖 價:¥83.9(7.0折) 定價  ¥119.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

LINUX后端開發工程實踐 版權信息

LINUX后端開發工程實踐 本書特色

詳細解讀Linux后端開發,體系化介紹了后端開發人員所需的關鍵技能;

來自互聯網大廠的資審工程師,結合工作實踐寫作的Linux后端開發的圖書;

全面涵蓋了構建RPC框架和微服務集群的技術難點,附贈源代碼;

幫助讀者從零開始構建高效的RPC框架和微服務集群。

LINUX后端開發工程實踐 內容簡介

本書全面介紹了Linux后端開發的相關知識和技能,涵蓋了Linux系統的各種功能和工具、Linux編程的相關知識和技能,以及開發后端服務和應用程序的內容。本書分為15章,主要內容包括Linux后端開發概述,開發環境搭建,服務器運維,shell編程簡介,實現簡易shell,使用Git管理代碼,編譯、鏈接、運行與調試,后端服務編寫,網絡通信基礎,I/O模型與并發,公共代碼提煉,應用層協議設計與實現,MyRPC框架設計與實現以及微服務集群的構建等。 本書講解通俗易懂,實例豐富,適合C/C++開發人員、Linux后端開發人員、對Linux后端開發感興趣或者希望從事Linux后端開發的人員閱讀,也適合作為高等院校計算機相關專業師生的學習用書及培訓學校的教材。

LINUX后端開發工程實踐 目錄

目  錄

第 1章 概述 1

1.1 本書不會涉及的內容 1

1.2 本書專注的內容 1

1.3 為什么這么安排 1

1.4 Linux是什么 2

1.5 后端開發是什么 2

1.6 您將學到什么 3

1.7 代碼目錄結構說明 3

1.7.1 目錄MyRPC 4

1.7.2 第三方依賴 4

1.8 如何學習Linux后端開發 4

1.8.1 堅持不懈的心態 4

1.8.2 以問題作為切入點 4

1.8.3 動手實踐和創造 5

1.9 本章小結 5

第 2章 開發環境搭建 6

2.1 本地開發環境 6

2.1.1 代碼編輯器 6

2.1.2 終端管理器 6

2.1.3 測試工具 6

2.2 遠端運行環境 7

2.3 本章小結 9

第3章 服務器運維 10

3.1 什么是shell 10

3.2 shell下的命令行 11

3.2.1 命令行的組成 11

3.2.2 大部分命令具備的共性 11

3.2.3 使用man命令查詢在線手冊 12

3.2.4 命令和文件補全 13

3.2.5 命令行的通配符和特殊符號 13

3.2.6 內置命令與外部命令 13

3.3 基本的命令操作 14

3.3.1 屏幕相關 14

3.3.2 目錄和文件相關 14

3.3.3 進程相關 21

3.3.4 網絡相關 22

3.3.5 系統相關 22

3.3.6 用戶相關 24

3.3.7 命令執行相關 25

3.3.8 日期相關 27

3.4 man的替代工具 27

3.5 命令黏合劑:管道機制 28

3.5.1 如何使用管道 28

3.5.2 行過濾命令grep 28

3.5.3 文本分析處理工具awk 29

3.5.4 流編輯命令sed 30

3.5.5 參數傳遞命令xargs 32

3.5.6 其他常用的輔助命令 34

3.6 命令輸入/輸出的重定向 35

3.7 命令的連續執行 36

3.8 vi編輯器簡介 36

3.9 本章小結 37

第4章 shell編程簡介 38

4.1 什么是shell編程 38

4.2 “hello world”程序 38

4.3 shell的執行過程 38

4.4 調試 39

4.5 執行方式的不同 39

4.5.1 直接執行 39

4.5.2 使用bash來執行 40

4.5.3 使用source或英文點號“.”來執行 40

4.6 變量 41

4.6.1 環境變量 41

4.6.2 自定義變量 41

4.6.3 特殊變量 42

4.6.4 在C語言中操作環境變量 43

4.6.5 查看進程運行時的環境變量 44

4.7 選擇與判斷 44

4.7.1 test命令與判斷符號“[]” 44

4.7.2 if語句 46

4.7.3 case語句 47

4.8 循環 48

4.8.1 while循環 48

4.8.2 until循環 48

4.8.3 for循環 49

4.8.4 break語句和continue語句 50

4.9 函數 50

4.10 命令選項 51

4.11 本章小結 51

第5章 實現簡易shell 52

5.1 實現的特性 52

5.2 執行邏輯 52

5.3 實現原理 52

5.3.1 命令行解析 52

5.3.2 特性實現 53

5.3.3 函數介紹 53

5.4 編碼實現 55

5.5 特性測試 64

5.6 本章小結 65

第6章 使用Git管理代碼 66

6.1 初始化 66

6.1.1 安裝Git工具 66

6.1.2 設置用戶名和郵箱 66

6.1.3 創建倉庫 66

6.1.4 創建readme.md文件 67

6.1.5 創建.gitignore文件 67

6.2 核心概念 67

6.3 常用操作 68

6.3.1 查看當前倉庫的狀態 68

6.3.2 添加文件 69

6.3.3 刪除文件 69

6.3.4 回退變更 70

6.3.5 查看提交日志 70

6.3.6 查看差異 71

6.3.7 分支管理 71

6.3.8 其他操作 73

6.4 團隊協作 74

6.4.1 同步代碼倉庫 74

6.4.2 創建自己的分支 74

6.4.3 推送分支到遠程倉庫 75

6.4.4 發起合入請求 75

6.4.5 發布變更 75

6.5 本章小結 75

第7章 編譯、鏈接、運行與調試 76

7.1 單文件程序的編譯與鏈接 76

7.1.1 預處理階段 77

7.1.2 編譯階段 78

7.1.3 匯編階段 79

7.1.4 鏈接階段 80

7.1.5 ELF概述 80

7.1.6 符號解析與重定位 82

7.2 工程項目的編譯與鏈接 85

7.2.1 makefile 86

7.2.2 一個實例 87

7.2.3 實現簡易的make命令 92

7.2.4 常用的編譯和鏈接選項 100

7.3 動態鏈接與靜態鏈接 102

7.4 Linux動態鏈接庫規范 103

7.4.1 動態鏈接庫的命名 104

7.4.2 動態鏈接庫的三個不同名稱 104

7.4.3 動態鏈接庫的管理 105

7.5 自定義的動態鏈接庫 107

7.5.1 相關源代碼 107

7.5.2 生成攜帶“so name”的動態鏈接庫 108

7.5.3 生成不攜帶“so name”的動態鏈接庫 109

7.6 進程的內存模型 110

7.6.1 進程的虛擬地址空間布局 110

7.6.2 棧與堆的區別 111

7.6.3 經典問題剖析 111

7.7 調試程序 115

7.7.1 gdb的啟動 115

7.7.2 gdb常用命令 115

7.8 本章小結 118

第8章 后端服務編寫 119

8.1 守護進程 119

8.1.1 什么是守護進程 119

8.1.2 守護進程如何編寫 119

8.1.3 代碼實現 121

8.2 設置資源限制 122

8.3 信號處理 123

8.4 加載配置功能 124

8.5 命令行參數解析 125

8.6 日志輸出功能 125

8.7 服務啟停腳本 126

8.7.1 加載系統自帶的shell函數 128

8.7.2 服務相關變量聲明 128

8.7.3 服務啟動函數 128

8.7.4 服務停止函數 128

8.7.5 服務重啟函數 128

8.7.6 服務狀態查看函數 129

8.7.7 case語句 129

8.8 本章小結 129

第9章 網絡通信基礎 130

9.1 TCP/IP協議棧概述 130

9.2 物理層與數據鏈路層 132

9.2.1 物理層 132

9.2.2 數據鏈路層 132

9.3 網絡層 133

9.3.1 網際協議的特點 133

9.3.2 IP數據報格式 133

9.3.3 IP地址 135

9.3.4 路由選擇 138

9.3.5 ARP與RARP 139

9.3.6 ICMP 145

9.4 傳輸層 156

9.4.1 UDP 157

9.4.2 TCP 158

9.5 網絡編程接口 173

9.5.1 TCP網絡通信的基本流程 173

9.5.2 socket網絡編程 174

9.6 TCP經典異常場景分析 181

9.6.1 場景1:Address already in use 181

9.6.2 場景2:Connection refused 181

9.6.3 場景3:Broken pipe 182

9.6.4 場景4:Connection timeout 182

9.6.5 場景5:Connection reset by peer 184

9.7 本章小結 184

第 10章 I/O模型與并發 185

10.1 I/O模型概述 185

10.1.1 阻塞I/O 185

10.1.2 非阻塞I/O 185

10.1.3 I/O多路復用 185

10.1.4 異步I/O 186

10.2 并發實例——EchoServer 186

10.2.1 Echo協議 186

10.2.2 協程 190

10.2.3 benchmark工具 201

10.2.4 單進程 204

10.2.5 多進程 205

10.2.6 多線程 206

10.2.7 進程池1 207

10.2.8 進程池2 208

10.2.9 線程池 209

10.2.10 簡單的領導者-跟隨者模型 210

10.2.11 I/O多路復用之select(單進程)-阻塞I/O 212

10.2.12 I/O多路復用之poll(單進程)-阻塞I/O 214

10.2.13 I/O多路復用之epoll(單進程)-阻塞I/O 216

10.2.14 I/O多路復用之epoll(單進程)-Reactor 222

10.2.15 I/O多路復用之epoll(單進程)-Reactor-ET模式 225

10.2.16 I/O多路復用之epoll(單進程)-Reactor-協程池 226

10.2.17 I/O多路復用之epoll(線程池)-Reactor 229

10.2.18 I/O多路復用之epoll(線程池)-Reactor-HSHA 230

10.2.19 I/O多路復用之epoll(線程池)-Reactor-MS 233

10.2.20 I/O多路復用之epoll(進程池)-Reactor-協程池 236

10.3 基準性能對比與分析 239

10.3.1 非I/O復用模型對比 239

10.3.2 I/O復用模型對比 240

10.3.3 epoll下LT模式和ET模式對比 240

10.3.4 epoll下協程池模式和非協程池模式對比 241

10.3.5 HSHA模式下工作線程和I/O線程寫應答對比 241

10.3.6 MS模式下MainReactor線程是否監聽可讀事件對比 241

10.3.7 epoll下動態和固定超時時間對比 242

10.3.8 epoll下進程池和線程池對比 242

10.4 本章小結 243

第 11章 公共代碼提煉 244

11.1 參數列表 244

11.2 命令行參數解析 245

11.3 字符串 248

11.4 配置文件讀取 249

11.5 延遲執行 251

11.6 單例模板 252

11.7 百分位數計算 252

11.8 魯棒的I/O 253

11.9 時間處理 254

11.10 狀態碼 255

11.11 轉換 256

11.12 socket選項 257

11.13 “龍套” 258

11.14 日志文件 260

11.15 服務鎖 262

11.16 本章小結 263

第 12章 應用層協議設計與實現 264

12.1 協議概述 264

12.2 協議分類 264

12.2.1 按編解碼方式對協議進行分類 265

12.2.2 按邊界劃分方式對協議進行分類 265

12.3 協議評判 266

12.4 自定義協議的優缺點 266

12.4.1 優點 266

12.4.2 缺點 267

12.5 協議設計 267

12.5.1 協議消息格式 267

12.5.2 協議設計權衡 268

12.6 預備知識 268

12.6.1 大小端 268

12.6.2 字節序 269

12.6.3 字節序的互轉 270

12.6.4 內存對象與布局 272

12.6.5 指針類型的本質 272

12.6.6 序列化與反序列化 273

12.7 其他協議 274

12.7.1 HTTP消息格式 275

12.7.2 RESP消息格式 276

12.8 協議實現 276

12.8.1 協議編解碼抽象 277

12.8.2 MySvr實現 279

12.8.3 HTTP實現 284

12.8.4 RESP實現 289

12.8.5 混合協議實現 293

12.8.6 共性總結 295

12.9 本章小結 296

第 13章 MyRPC框架設計與實現 297

13.1 框架概述 297

13.2 并發模型 298

13.3 框架具體實現 299

13.3.1 服務啟動流程 300

13.3.2 事件分發流程 304

13.3.3 服務器端請求處理流程 311

13.3.4 客戶端請求處理流程 321

13.3.5 分布式調用棧追蹤 334

13.3.6 超時管理 338

13.3.7 本地協程變量管理 338

13.3.8 業務層的并發 339

13.4 示例服務Echo 339

13.4.1 目錄結構劃分 340

13.4.2 服務描述文件 340

13.4.3 服務啟動 341

13.4.4 業務處理 341

13.4.5 配置與輔助文件 342

13.4.6 通用的服務啟停腳本 345

13.4.7 接口測試 346

13.5 工具集合 347

13.5.1 服務代碼生成工具myrpcc 347

13.5.2 接口測試工具myrpct 362

13.5.3 接口壓測工具myrpcb 365

13.6 本章小結 371

第 14章 微服務集群 372

14.1 集群架構概述 372

14.2 持久化層 372

14.2.1 Redis服務 373

14.2.2 authstore服務 373

14.2.3 userstore服務 375

14.3 業務邏輯層 379

14.3.1 auth服務 379

14.3.2 user服務 383

14.4 接入層 387

14.4.1 目錄結構 387

14.4.2 代碼與配置 388

14.4.3 接口測試 389

14.5 本章小結 389

第 15章 回顧總結 390

15.1 6種思維模式 390

15.1.1 不要被編程語言所限制 390

15.1.2 掌握多種編程語言是必然的 390

15.1.3 計算機本身就是一個狀態機 391

15.1.4 動手是*好的實踐 391

15.1.5 依靠工具提高效率和質量 391

15.1.6 像工匠一樣為自己創造工具 391

15.2 寫在*后 391
展開全部

LINUX后端開發工程實踐 作者簡介

高等院校計算機相關專業的師生、C/C 研發人員、Linux后端研發人員、Linux C/C 后端研發人員、對Linux后端研發感興趣或者希望從事Linux后端研發的人員

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服