Tars高性能服务开发核心技术与源码剖析

978-7-115-67040-3
作者: 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

详情

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相关特性,并将其运用到开发实践中。

图书摘要

相关图书

DeepSeek原理与项目实战大模型部署、微调与应用开发
DeepSeek原理与项目实战大模型部署、微调与应用开发
精通MCP:AI智能体开发实战
精通MCP:AI智能体开发实战
Python编程快速上手——让烦琐工作自动化(第3版)
Python编程快速上手——让烦琐工作自动化(第3版)
C++程序设计语言(第4版)(上、下册)
C++程序设计语言(第4版)(上、下册)
软件工程3.0:大模型驱动的研发新范式
软件工程3.0:大模型驱动的研发新范式
图机器学习
图机器学习

相关文章

相关课程