書(shū)馨卡幫你省薪 2024個(gè)人購(gòu)書(shū)報(bào)告 2024中圖網(wǎng)年度報(bào)告
歡迎光臨中圖網(wǎng) 請(qǐng) | 注冊(cè)

LINUX后端開(kāi)發(fā)工程實(shí)踐

出版社:人民郵電出版社出版時(shí)間:2024-01-01
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 391
中 圖 價(jià):¥83.9(7.0折) 定價(jià)  ¥119.8 登錄后可看到會(huì)員價(jià)
加入購(gòu)物車(chē) 收藏
運(yùn)費(fèi)6元,滿39元免運(yùn)費(fèi)
?新疆、西藏除外
本類(lèi)五星書(shū)更多>

LINUX后端開(kāi)發(fā)工程實(shí)踐 版權(quán)信息

LINUX后端開(kāi)發(fā)工程實(shí)踐 本書(shū)特色

詳細(xì)解讀Linux后端開(kāi)發(fā),體系化介紹了后端開(kāi)發(fā)人員所需的關(guān)鍵技能;

來(lái)自互聯(lián)網(wǎng)大廠的資審工程師,結(jié)合工作實(shí)踐寫(xiě)作的Linux后端開(kāi)發(fā)的圖書(shū);

全面涵蓋了構(gòu)建RPC框架和微服務(wù)集群的技術(shù)難點(diǎn),附贈(zèng)源代碼;

幫助讀者從零開(kāi)始構(gòu)建高效的RPC框架和微服務(wù)集群。

LINUX后端開(kāi)發(fā)工程實(shí)踐 內(nèi)容簡(jiǎn)介

本書(shū)全面介紹了Linux后端開(kāi)發(fā)的相關(guān)知識(shí)和技能,涵蓋了Linux系統(tǒng)的各種功能和工具、Linux編程的相關(guān)知識(shí)和技能,以及開(kāi)發(fā)后端服務(wù)和應(yīng)用程序的內(nèi)容。本書(shū)分為15章,主要內(nèi)容包括Linux后端開(kāi)發(fā)概述,開(kāi)發(fā)環(huán)境搭建,服務(wù)器運(yùn)維,shell編程簡(jiǎn)介,實(shí)現(xiàn)簡(jiǎn)易shell,使用Git管理代碼,編譯、鏈接、運(yùn)行與調(diào)試,后端服務(wù)編寫(xiě),網(wǎng)絡(luò)通信基礎(chǔ),I/O模型與并發(fā),公共代碼提煉,應(yīng)用層協(xié)議設(shè)計(jì)與實(shí)現(xiàn),MyRPC框架設(shè)計(jì)與實(shí)現(xiàn)以及微服務(wù)集群的構(gòu)建等。 本書(shū)講解通俗易懂,實(shí)例豐富,適合C/C++開(kāi)發(fā)人員、Linux后端開(kāi)發(fā)人員、對(duì)Linux后端開(kāi)發(fā)感興趣或者希望從事Linux后端開(kāi)發(fā)的人員閱讀,也適合作為高等院校計(jì)算機(jī)相關(guān)專業(yè)師生的學(xué)習(xí)用書(shū)及培訓(xùn)學(xué)校的教材。

LINUX后端開(kāi)發(fā)工程實(shí)踐 目錄

目  錄

第 1章 概述 1

1.1 本書(shū)不會(huì)涉及的內(nèi)容 1

1.2 本書(shū)專注的內(nèi)容 1

1.3 為什么這么安排 1

1.4 Linux是什么 2

1.5 后端開(kāi)發(fā)是什么 2

1.6 您將學(xué)到什么 3

1.7 代碼目錄結(jié)構(gòu)說(shuō)明 3

1.7.1 目錄MyRPC 4

1.7.2 第三方依賴 4

1.8 如何學(xué)習(xí)Linux后端開(kāi)發(fā) 4

1.8.1 堅(jiān)持不懈的心態(tài) 4

1.8.2 以問(wèn)題作為切入點(diǎn) 4

1.8.3 動(dòng)手實(shí)踐和創(chuàng)造 5

1.9 本章小結(jié) 5

第 2章 開(kāi)發(fā)環(huán)境搭建 6

2.1 本地開(kāi)發(fā)環(huán)境 6

2.1.1 代碼編輯器 6

2.1.2 終端管理器 6

2.1.3 測(cè)試工具 6

2.2 遠(yuǎn)端運(yùn)行環(huán)境 7

2.3 本章小結(jié) 9

第3章 服務(wù)器運(yùn)維 10

3.1 什么是shell 10

3.2 shell下的命令行 11

3.2.1 命令行的組成 11

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

3.2.3 使用man命令查詢?cè)诰手冊(cè) 12

3.2.4 命令和文件補(bǔ)全 13

3.2.5 命令行的通配符和特殊符號(hào) 13

3.2.6 內(nèi)置命令與外部命令 13

3.3 基本的命令操作 14

3.3.1 屏幕相關(guān) 14

3.3.2 目錄和文件相關(guān) 14

3.3.3 進(jìn)程相關(guān) 21

3.3.4 網(wǎng)絡(luò)相關(guān) 22

3.3.5 系統(tǒng)相關(guān) 22

3.3.6 用戶相關(guān) 24

3.3.7 命令執(zhí)行相關(guān) 25

3.3.8 日期相關(guān) 27

3.4 man的替代工具 27

3.5 命令黏合劑:管道機(jī)制 28

3.5.1 如何使用管道 28

3.5.2 行過(guò)濾命令grep 28

3.5.3 文本分析處理工具awk 29

3.5.4 流編輯命令sed 30

3.5.5 參數(shù)傳遞命令xargs 32

3.5.6 其他常用的輔助命令 34

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

3.7 命令的連續(xù)執(zhí)行 36

3.8 vi編輯器簡(jiǎn)介 36

3.9 本章小結(jié) 37

第4章 shell編程簡(jiǎn)介 38

4.1 什么是shell編程 38

4.2 “hello world”程序 38

4.3 shell的執(zhí)行過(guò)程 38

4.4 調(diào)試 39

4.5 執(zhí)行方式的不同 39

4.5.1 直接執(zhí)行 39

4.5.2 使用bash來(lái)執(zhí)行 40

4.5.3 使用source或英文點(diǎn)號(hào)“.”來(lái)執(zhí)行 40

4.6 變量 41

4.6.1 環(huán)境變量 41

4.6.2 自定義變量 41

4.6.3 特殊變量 42

4.6.4 在C語(yǔ)言中操作環(huán)境變量 43

4.6.5 查看進(jìn)程運(yùn)行時(shí)的環(huán)境變量 44

4.7 選擇與判斷 44

4.7.1 test命令與判斷符號(hào)“[]” 44

4.7.2 if語(yǔ)句 46

4.7.3 case語(yǔ)句 47

4.8 循環(huán) 48

4.8.1 while循環(huán) 48

4.8.2 until循環(huán) 48

4.8.3 for循環(huán) 49

4.8.4 break語(yǔ)句和continue語(yǔ)句 50

4.9 函數(shù) 50

4.10 命令選項(xiàng) 51

4.11 本章小結(jié) 51

第5章 實(shí)現(xiàn)簡(jiǎn)易shell 52

5.1 實(shí)現(xiàn)的特性 52

5.2 執(zhí)行邏輯 52

5.3 實(shí)現(xiàn)原理 52

5.3.1 命令行解析 52

5.3.2 特性實(shí)現(xiàn) 53

5.3.3 函數(shù)介紹 53

5.4 編碼實(shí)現(xiàn) 55

5.5 特性測(cè)試 64

5.6 本章小結(jié) 65

第6章 使用Git管理代碼 66

6.1 初始化 66

6.1.1 安裝Git工具 66

6.1.2 設(shè)置用戶名和郵箱 66

6.1.3 創(chuàng)建倉(cāng)庫(kù) 66

6.1.4 創(chuàng)建readme.md文件 67

6.1.5 創(chuàng)建.gitignore文件 67

6.2 核心概念 67

6.3 常用操作 68

6.3.1 查看當(dāng)前倉(cāng)庫(kù)的狀態(tài) 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 團(tuán)隊(duì)協(xié)作 74

6.4.1 同步代碼倉(cāng)庫(kù) 74

6.4.2 創(chuàng)建自己的分支 74

6.4.3 推送分支到遠(yuǎn)程倉(cāng)庫(kù) 75

6.4.4 發(fā)起合入請(qǐng)求 75

6.4.5 發(fā)布變更 75

6.5 本章小結(jié) 75

第7章 編譯、鏈接、運(yùn)行與調(diào)試 76

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

7.1.1 預(yù)處理階段 77

7.1.2 編譯階段 78

7.1.3 匯編階段 79

7.1.4 鏈接階段 80

7.1.5 ELF概述 80

7.1.6 符號(hào)解析與重定位 82

7.2 工程項(xiàng)目的編譯與鏈接 85

7.2.1 makefile 86

7.2.2 一個(gè)實(shí)例 87

7.2.3 實(shí)現(xiàn)簡(jiǎn)易的make命令 92

7.2.4 常用的編譯和鏈接選項(xiàng) 100

7.3 動(dòng)態(tài)鏈接與靜態(tài)鏈接 102

7.4 Linux動(dòng)態(tài)鏈接庫(kù)規(guī)范 103

7.4.1 動(dòng)態(tài)鏈接庫(kù)的命名 104

7.4.2 動(dòng)態(tài)鏈接庫(kù)的三個(gè)不同名稱 104

7.4.3 動(dòng)態(tài)鏈接庫(kù)的管理 105

7.5 自定義的動(dòng)態(tài)鏈接庫(kù) 107

7.5.1 相關(guān)源代碼 107

7.5.2 生成攜帶“so name”的動(dòng)態(tài)鏈接庫(kù) 108

7.5.3 生成不攜帶“so name”的動(dòng)態(tài)鏈接庫(kù) 109

7.6 進(jìn)程的內(nèi)存模型 110

7.6.1 進(jìn)程的虛擬地址空間布局 110

7.6.2 棧與堆的區(qū)別 111

7.6.3 經(jīng)典問(wèn)題剖析 111

7.7 調(diào)試程序 115

7.7.1 gdb的啟動(dòng) 115

7.7.2 gdb常用命令 115

7.8 本章小結(jié) 118

第8章 后端服務(wù)編寫(xiě) 119

8.1 守護(hù)進(jìn)程 119

8.1.1 什么是守護(hù)進(jìn)程 119

8.1.2 守護(hù)進(jìn)程如何編寫(xiě) 119

8.1.3 代碼實(shí)現(xiàn) 121

8.2 設(shè)置資源限制 122

8.3 信號(hào)處理 123

8.4 加載配置功能 124

8.5 命令行參數(shù)解析 125

8.6 日志輸出功能 125

8.7 服務(wù)啟停腳本 126

8.7.1 加載系統(tǒng)自帶的shell函數(shù) 128

8.7.2 服務(wù)相關(guān)變量聲明 128

8.7.3 服務(wù)啟動(dòng)函數(shù) 128

8.7.4 服務(wù)停止函數(shù) 128

8.7.5 服務(wù)重啟函數(shù) 128

8.7.6 服務(wù)狀態(tài)查看函數(shù) 129

8.7.7 case語(yǔ)句 129

8.8 本章小結(jié) 129

第9章 網(wǎng)絡(luò)通信基礎(chǔ) 130

9.1 TCP/IP協(xié)議棧概述 130

9.2 物理層與數(shù)據(jù)鏈路層 132

9.2.1 物理層 132

9.2.2 數(shù)據(jù)鏈路層 132

9.3 網(wǎng)絡(luò)層 133

9.3.1 網(wǎng)際協(xié)議的特點(diǎn) 133

9.3.2 IP數(shù)據(jù)報(bào)格式 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 網(wǎng)絡(luò)編程接口 173

9.5.1 TCP網(wǎng)絡(luò)通信的基本流程 173

9.5.2 socket網(wǎng)絡(luò)編程 174

9.6 TCP經(jīng)典異常場(chǎng)景分析 181

9.6.1 場(chǎng)景1:Address already in use 181

9.6.2 場(chǎng)景2:Connection refused 181

9.6.3 場(chǎng)景3:Broken pipe 182

9.6.4 場(chǎng)景4:Connection timeout 182

9.6.5 場(chǎng)景5:Connection reset by peer 184

9.7 本章小結(jié) 184

第 10章 I/O模型與并發(fā) 185

10.1 I/O模型概述 185

10.1.1 阻塞I/O 185

10.1.2 非阻塞I/O 185

10.1.3 I/O多路復(fù)用 185

10.1.4 異步I/O 186

10.2 并發(fā)實(shí)例——EchoServer 186

10.2.1 Echo協(xié)議 186

10.2.2 協(xié)程 190

10.2.3 benchmark工具 201

10.2.4 單進(jìn)程 204

10.2.5 多進(jìn)程 205

10.2.6 多線程 206

10.2.7 進(jìn)程池1 207

10.2.8 進(jìn)程池2 208

10.2.9 線程池 209

10.2.10 簡(jiǎn)單的領(lǐng)導(dǎo)者-跟隨者模型 210

10.2.11 I/O多路復(fù)用之select(單進(jìn)程)-阻塞I/O 212

10.2.12 I/O多路復(fù)用之poll(單進(jìn)程)-阻塞I/O 214

10.2.13 I/O多路復(fù)用之epoll(單進(jìn)程)-阻塞I/O 216

10.2.14 I/O多路復(fù)用之epoll(單進(jìn)程)-Reactor 222

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

10.2.16 I/O多路復(fù)用之epoll(單進(jìn)程)-Reactor-協(xié)程池 226

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

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

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

10.2.20 I/O多路復(fù)用之epoll(進(jìn)程池)-Reactor-協(xié)程池 236

10.3 基準(zhǔn)性能對(duì)比與分析 239

10.3.1 非I/O復(fù)用模型對(duì)比 239

10.3.2 I/O復(fù)用模型對(duì)比 240

10.3.3 epoll下LT模式和ET模式對(duì)比 240

10.3.4 epoll下協(xié)程池模式和非協(xié)程池模式對(duì)比 241

10.3.5 HSHA模式下工作線程和I/O線程寫(xiě)應(yīng)答對(duì)比 241

10.3.6 MS模式下MainReactor線程是否監(jiān)聽(tīng)可讀事件對(duì)比 241

10.3.7 epoll下動(dòng)態(tài)和固定超時(shí)時(shí)間對(duì)比 242

10.3.8 epoll下進(jìn)程池和線程池對(duì)比 242

10.4 本章小結(jié) 243

第 11章 公共代碼提煉 244

11.1 參數(shù)列表 244

11.2 命令行參數(shù)解析 245

11.3 字符串 248

11.4 配置文件讀取 249

11.5 延遲執(zhí)行 251

11.6 單例模板 252

11.7 百分位數(shù)計(jì)算 252

11.8 魯棒的I/O 253

11.9 時(shí)間處理 254

11.10 狀態(tài)碼 255

11.11 轉(zhuǎn)換 256

11.12 socket選項(xiàng) 257

11.13 “龍?zhí)住?258

11.14 日志文件 260

11.15 服務(wù)鎖 262

11.16 本章小結(jié) 263

第 12章 應(yīng)用層協(xié)議設(shè)計(jì)與實(shí)現(xiàn) 264

12.1 協(xié)議概述 264

12.2 協(xié)議分類(lèi) 264

12.2.1 按編解碼方式對(duì)協(xié)議進(jìn)行分類(lèi) 265

12.2.2 按邊界劃分方式對(duì)協(xié)議進(jìn)行分類(lèi) 265

12.3 協(xié)議評(píng)判 266

12.4 自定義協(xié)議的優(yōu)缺點(diǎn) 266

12.4.1 優(yōu)點(diǎn) 266

12.4.2 缺點(diǎn) 267

12.5 協(xié)議設(shè)計(jì) 267

12.5.1 協(xié)議消息格式 267

12.5.2 協(xié)議設(shè)計(jì)權(quán)衡 268

12.6 預(yù)備知識(shí) 268

12.6.1 大小端 268

12.6.2 字節(jié)序 269

12.6.3 字節(jié)序的互轉(zhuǎn) 270

12.6.4 內(nèi)存對(duì)象與布局 272

12.6.5 指針類(lèi)型的本質(zhì) 272

12.6.6 序列化與反序列化 273

12.7 其他協(xié)議 274

12.7.1 HTTP消息格式 275

12.7.2 RESP消息格式 276

12.8 協(xié)議實(shí)現(xiàn) 276

12.8.1 協(xié)議編解碼抽象 277

12.8.2 MySvr實(shí)現(xiàn) 279

12.8.3 HTTP實(shí)現(xiàn) 284

12.8.4 RESP實(shí)現(xiàn) 289

12.8.5 混合協(xié)議實(shí)現(xiàn) 293

12.8.6 共性總結(jié) 295

12.9 本章小結(jié) 296

第 13章 MyRPC框架設(shè)計(jì)與實(shí)現(xiàn) 297

13.1 框架概述 297

13.2 并發(fā)模型 298

13.3 框架具體實(shí)現(xiàn) 299

13.3.1 服務(wù)啟動(dòng)流程 300

13.3.2 事件分發(fā)流程 304

13.3.3 服務(wù)器端請(qǐng)求處理流程 311

13.3.4 客戶端請(qǐng)求處理流程 321

13.3.5 分布式調(diào)用棧追蹤 334

13.3.6 超時(shí)管理 338

13.3.7 本地協(xié)程變量管理 338

13.3.8 業(yè)務(wù)層的并發(fā) 339

13.4 示例服務(wù)Echo 339

13.4.1 目錄結(jié)構(gòu)劃分 340

13.4.2 服務(wù)描述文件 340

13.4.3 服務(wù)啟動(dòng) 341

13.4.4 業(yè)務(wù)處理 341

13.4.5 配置與輔助文件 342

13.4.6 通用的服務(wù)啟停腳本 345

13.4.7 接口測(cè)試 346

13.5 工具集合 347

13.5.1 服務(wù)代碼生成工具myrpcc 347

13.5.2 接口測(cè)試工具myrpct 362

13.5.3 接口壓測(cè)工具myrpcb 365

13.6 本章小結(jié) 371

第 14章 微服務(wù)集群 372

14.1 集群架構(gòu)概述 372

14.2 持久化層 372

14.2.1 Redis服務(wù) 373

14.2.2 authstore服務(wù) 373

14.2.3 userstore服務(wù) 375

14.3 業(yè)務(wù)邏輯層 379

14.3.1 auth服務(wù) 379

14.3.2 user服務(wù) 383

14.4 接入層 387

14.4.1 目錄結(jié)構(gòu) 387

14.4.2 代碼與配置 388

14.4.3 接口測(cè)試 389

14.5 本章小結(jié) 389

第 15章 回顧總結(jié) 390

15.1 6種思維模式 390

15.1.1 不要被編程語(yǔ)言所限制 390

15.1.2 掌握多種編程語(yǔ)言是必然的 390

15.1.3 計(jì)算機(jī)本身就是一個(gè)狀態(tài)機(jī) 391

15.1.4 動(dòng)手是*好的實(shí)踐 391

15.1.5 依靠工具提高效率和質(zhì)量 391

15.1.6 像工匠一樣為自己創(chuàng)造工具 391

15.2 寫(xiě)在*后 391
展開(kāi)全部

LINUX后端開(kāi)發(fā)工程實(shí)踐 作者簡(jiǎn)介

高等院校計(jì)算機(jī)相關(guān)專業(yè)的師生、C/C 研發(fā)人員、Linux后端研發(fā)人員、Linux C/C 后端研發(fā)人員、對(duì)Linux后端研發(fā)感興趣或者希望從事Linux后端研發(fā)的人員

暫無(wú)評(píng)論……
書(shū)友推薦
返回頂部
中圖網(wǎng)
在線客服