Tars高性能服務開發核心技術與源碼剖析

vivo互聯網消息推送平臺團隊

  • 出版商: 人民郵電
  • 出版日期: 2026-01-01
  • 售價: $599
  • 語言: 簡體中文
  • 頁數: 210
  • ISBN: 7115670404
  • ISBN-13: 9787115670403
  • 相關分類: Message Queue
  • 下單後立即進貨 (約4週~6週)

  • Tars高性能服務開發核心技術與源碼剖析-preview-1
Tars高性能服務開發核心技術與源碼剖析-preview-1

相關主題

商品描述

RPC框架是服務端開發者的常用框架,本書基於Linux基金會旗下的Tars框架編寫,旨在幫助讀者掌握高性能RPC框架Tars。

本書共6章。第1章介紹Tars框架知識與多語言交互實戰項目;第 2 章講述Tars框架的使用,例如用 docker-compose 部署Tars服務框架,以及不同語言(以Java和Go為例)服務的構建和調用;第 3 章介紹Tars框架的高級特性,涉及按set調用、無損發布、自定義 Filter、使用Tars命令、使用Protocol Buffers 協議等內容;第 4 章剖析Tars框架核心原理,包括Tars RPC原理剖析及Tars NIO網絡編程和Tars Netty網絡編程;第 5 章進行Tars-Java源碼解析,涵蓋Tars客戶端源碼分析、Tars服務端源碼分析等;第6章進行Tars-Cpp源碼解析,涉及Tars-Cpp整體架構、Tars-Cpp網絡分析等。書中還有豐富的案例和代碼演示,讀者可借助配套資源進行實踐以進一步鞏固所學知識。

本書適合有一定服務端開發基礎,想要掌握高性能 RPC 框架 Tars 的讀者閱讀。通過閱讀本書,讀者能夠更好地掌握Tars相關特性,並將其運用到開發實踐中。

作者簡介

vivo互聯網消息推送平臺團隊肩負著vivo公司消息推送平臺的研發與支持重任。團隊匯聚了一批資深服務器研發工程師與專家,他們自 2018年起便投身於Tars框架的研究與實踐,並將其深度應用於vivo消息推送平臺的研發,積累了豐富的真實場景經驗。

如今,該團隊所打造的消息推送平臺表現卓越,能夠穩定支撐vivo消息推送平臺每日百億級消息的推送任務,同時保障全球數億臺手機終端設備的長連接穩定在線。此外,團隊還持續關註新技術在消息推送等領域的應用探索,並通過積極撰寫技術文章、組織技術演講、貢獻代碼等多種形式,將自身經驗與成果在行業內廣泛分享。

目錄大綱

第 1 章 Tars——多語言高性能 RPC 框架 1

1.1 Tars 框架簡介 1

1.1.1 設計思想 1

1.1.2 架構拓撲 2

1.1.3 服務交互流程 3

1.1.4 Tars 服務的基礎概念 5

1.2 實戰項目介紹 6

第 2 章 Tars 框架的使用 7

2.1 使用 docker-compose 部署 Tars 服務框架 7

2.1.1 部署腳本 7

2.1.2 平臺使用簡介 9

2.2 Tars-Java 服務構建及調用 10

2.2.1 服務端開發 10

2.2.2 客戶端開發 13

2.3 Tars-Go 服務構建及調用 16

2.3.1 服務端開發 16

2.3.2 客戶端開發 18

第 3 章 Tars 框架的高級特性 19

3.1 按 set 調用 19

3.1.1 配置 set 19

3.1.2 使用 set 20

3.2 無損發布 21

3.2.1 需求背景 21

3.2.2 節點的靜態權重 21

3.2.3 流量控制 23

3.3 自定義 Filter 24

3.3.1 自定義日誌攔截器 24

3.3.2 MDC 與異步線程 26

3.3.3 基於 Spring AOP 實現 MDC 鏈路追蹤切面 27

3.4 使用 Tars 管理命令 28

3.4.1 停止 Tars 服務 28

3.4.2 Tars 內置的管理命令 28

3.4.3 Tars 自定義命令 29

3.5 使用 Protocol Buffers 協議 31

3.6 調用鏈追蹤的原理 32

3.6.1 分布式系統的遠程調用過程 33

3.6.2 調用鏈追蹤系統的設計與實現 36

3.6.3 開源調用鏈 38

3.7 Tars-Java 調用鏈實踐及源碼分析 39

3.7.1 部署 Zipkin 服務 40

3.7.2 服務端代碼埋點 40

3.7.3 通過私有模板配置調用鏈地址 40

3.7.4 動手實踐 42

3.7.5 源碼分析 44

3.8 Tars 分布式緩存 DCache 49

3.8.1 DCache 簡介 49

3.8.2 安裝 DCache 51

3.8.3 使用 DCache 51

3.8.4 原理 55

第 4 章 Tars 框架核心原理 59

4.1 Tars RPC 原理剖析 59

4.1.1 什麼是 RPC 59

4.1.2 如何實現一個 RPC 60

4.1.3 Tars 如何實現 RPC 65

4.2 Tars NIO 網絡編程 75

4.2.1 Java NIO 原理概述 75

4.2.2 Tars NIO 網絡編程 80

4.3 Tars Netty 網絡編程 87

4.3.1 使用方法和實現細節 87

4.3.2 源碼解析 90

第 5 章 Tars-Java 源碼解析 96

5.1 Tars 客戶端源碼分析 96

5.1.1 遠程調用的一般流程 96

5.1.2 Tars-Java 客戶端設計介紹 97

5.2 Tars 服務端源碼分析 107

5.2.1 服務端啟動流程 108

5.2.2 Tars 監控 112

5.2.3 自定義命令 116

5.3 RPC 請求異步轉同步 121

5.3.1 傳統的 TCP 通信 121

5.3.2 Tars-Java 1.7.x 之前版本 122

5.3.3 Tars-Java 1.7.x 及之後版本 130

5.3.4 Tars-Java 2.x 及之後版本 133

5.4 Tars-Java 染色介紹 134

5.4.1 Tars-Java 染色功能概述 134

5.4.2 Tars-Java 染色源碼分析 137

5.4.3 小結 143

5.5 Tars 文件如何生成 Java 代碼 144

5.5.1 Tars-Java 代碼生成示例 144

5.5.2 Maven 插件編寫之 Mojo 146

5.5.3 Tars 文件解析 148

5.6 Tars-Java 日誌介紹 153

5.6.1 Tars-Java 日誌概述 153

5.6.2 Tars-Java 日誌配置與使用 153

5.6.3 Tars-Java 日誌管理機制 154

第 6 章 Tars-Cpp 源碼解析 160

6.1 Tars-Cpp 整體架構 160

6.1.1 連接管理 160

6.1.2 網絡收發線程模型 162

6.1.3 業務處理線程模型 164

6.1.4 客戶端代理 165

6.2 Tars-Cpp 網絡層實現分析 166

6.2.1 源碼結構 166

6.2.2 網絡相關初始化 167

6.2.3 連接建立流程 172

6.2.4 網絡數據包接收與協議解析 174

6.2.5 業務線程處理與路由機制 178

6.2.6 業務層連接管理與應答發送 183

6.3 Tars 協程實現分析 185

6.3.1 什麼是協程 185

6.3.2 協程的作用 185

6.3.3 協程的分類 186

6.3.4 Tars 協程實現 188

6.3.5 Tars 協程調度器 191

6.4 tarsRegistry 原理剖析 195

6.4.1 tarsRegistry 功能分析 196

6.4.2 tarsRegistry 路由加載 196

6.4.3 tarsRegistry 線程模型 198

6.5 服務發現 199

6.5.1 為什麼需要服務發現系統 199

6.5.2 服務發現機制需要哪些角色 200

6.5.3 服務發現的幾種模式 200

6.5.4 Tars 服務發現 202

6.6 tarsNode 原理剖析 203

6.6.1 業務服務管理 203

6.6.2 服務保活 206