书籍详情
万亿级流量转发:BFE核心技术与实现
作者:章淼 等 著
出版社:电子工业出版社
出版时间:2021-08-01
ISBN:9787121415654
定价:¥89.00
购买这本书可以去
内容简介
本书围绕BFE开源项目,介绍网络前端接入和网络负载均衡的相关技术原理,说明BFE开源软件的设计思想和实现机制,讲解如何基于BFE开源软件搭建网络接入平台。 本书共17章,分为四个部分。第一部分为原理篇,介绍BFE开源项目的概貌,并对网络前端接入技术和网络负载均衡技术做简要介绍;第二部分为设计篇,介绍BFE开源项目的设计细节,包括BFE的设计思想、BFE的转发模型、BFE的关键机制和HTTPS的优化等;第三部分为操作篇,说明如何安装和部署BFE、如何在各种使用场景下配置BFE;第四部分为实现篇,从处理流程、插件机制、协议实现等方面说明BFE的实现机制。 本书面向的读者包括计算机网络方向的研究者、网络相关技术的开发者、一般后台程序的开发者和负载均衡系统的使用者等。
作者简介
章淼 博士,百度智能云架构师,BFE开源项目发起人。1997年至2006年在清华大学从事互联网协议和网络体系结构的研究。2012年加入百度,一直从事网络基础架构的研发工作。同时积极推动百度的代码质量和工程能力的提升,目前兼任百度代码规范委员会主席。杨思杰 百度资深研发工程师,BFE开源项目主要负责人。从零开始参与百度新一代BFE转发平台的建设及创新,拥有近10年的在网络接入和系统架构方面的深入研究和实践经验。关注于通过开源驱动基础软件可持续发展及创造更大的价值。戴明 百度资深研发工程师,主要从事BFE相关系统和产品的研发工作。曾在朗讯、诺基亚等电信设备公司工作多年,从事电信软件研发和架构设计工作。陶春华 博士,百度资深研发工程师。2010年毕业于天津大学计算机系,2013年加入百度,先后参与智能流量调度、BFE的Go语言重构、BFE管控平台等重大项目。目前工作重心是负载均衡商业产品的研发。
目录
原 理 篇
第1章 BFE简介
1.1 什么是BFE
1.2 BFE平台介绍
1.2.1 为什么需要构建BFE平台
1.2.2 BFE平台的主要功能
1.3 BFE开源项目介绍
1.3.1 BFE平台的模块组成
1.3.2 BFE开源项目中的内容
第2章 网络前端接入技术简介
2.1 什么是网络前端接入
2.2 网络前端接入面临的挑战
2.3 百度的网络前端接入方案
2.4 网络前端接入技术的发展趋势
第3章 网络负载均衡技术简介
3.1 负载均衡的概念
3.2 网络负载均衡功能的实现
3.2.1 机制说明
3.2.2 两种方式对比
3.3 四层负载均衡和七层负载均衡
设 计 篇
第4章 BFE的设计思想
4.1 BFE转发引擎重构的缘起
4.2 BFE为什么要基于Go语言
4.3 BFE转发引擎的主要设计思想
4.4 BFE和相关开源项目的对比
第5章 BFE的转发模型
5.1 转发模型概述
5.1.1 基本概念
5.1.2 转发过程
5.1.3 对多租户实现机制的讨论
5.2 BFE的路由转发机制
5.3 条件表达式
5.3.1 设计思想
5.3.2 基本概念
5.3.3 语法介绍
5.3.4 条件原语匹配的内容
5.3.5 条件原语名称的规范
5.4 内网流量调度机制
5.4.1 内网流量调度背景介绍
5.4.2 内网流量调度工作机制
5.4.3 内网转发的其他机制
第6章 与转发相关的关键机制
6.1 健康检查机制
6.1.1 健康检查的原理
6.1.2 主动健康检查和被动健康检查
6.1.3 分布式健康检查和集中式健康检查
6.1.4 BFE的健康检查
6.2 超时设置
6.2.1 BFE和客户端间通信的超时
6.2.2 BFE和后端实例间通信的超时
6.3 BFE信息透传
6.3.1 客户端IP地址的透传
6.3.2 其他信息的透传
6.4 限流机制
6.4.1 限流的概念
6.4.2 限流的配置
6.4.3 分布式限流
6.4.4 入口限流和目的限流
6.4.5 限流和内网流量调度
第7章 运维相关机制
7.1 监控机制
7.1.1 日志监控及其问题
7.1.2 BFE的内部状态输出
7.1.3 统计状态和日志的配合使用
7.2 Web Monitor基础库
7.2.1 Web Monitor概述
7.2.2 状态变量维护
7.2.3 延迟统计变量维护
7.2.4 建立专用的Web服务器
7.2.5 注册回调函数
7.3 日志机制
7.3.1 日志类型
7.3.2 日志打印的注意事项
7.3.3 BFE的访问日志
7.4 配置管理
7.4.1 BFE配置文件的分布
7.4.2 常规配置和动态配置
7.4.3 动态配置的实现机制
第8章 HTTPS的优化
8.1 HTTPS优化背景及必要性
8.2 HTTPS优化的挑战
8.3 HTTPS中的优化机制
8.4 BFE中HTTPS相关增强机制
操 作 篇
9章 BFE服务的安装部署
9.1 软件安装包下载安装
9.2 源代码编译方式安装
9.3 Docker方式安装
9.4 BFE命令行参数
9.5 查看BFE服务的运行状态
第10章 BFE服务的基础配置
10.1 场景说明
10.2 修改基础配置文件
10.3 转发的配置
10.3.1 转发配置流程
10.3.2 具体案例
10.3.3 服务访问验证
10.3.4 配置的重新加载
第11章 配置负载均衡算法及会话保持
11.1 子集群间的负载均衡
11.2 子集群级别的会话保持
11.2.1 配置实例
11.2.2 参数的具体含义
11.3 实例间的负载均衡
11.3.1 加权轮询配置示例
11.3.2 最小连接数的配置示例
11.4 实例级别的会话保持
第12章 配置HTTPS和更多协议
12.1 设置HTTPS基础配置
12.1.1 配置HTTPS端口
12.1.2 配置加密套件
12.1.3 配置服务端证书
12.1.4 配置TLS规则
12.2 配置TLS会话重用
12.2.1 配置会话缓存
12.2.2 配置会话票证
12.3 配置TLS双向认证
12.4 对不同安全等级的区分
12.5 支持更多协议
12.5.1 HTTP/2配置
12.5.2 SPDY配置
12.5.3 WebSocket配置
12.5.4 连接后端服务的协议
第13章 其他常用配置
13.1 配置重写
13.1.1 开启重写
13.1.2 模块配置
13.1.3 重写动作详细描述
13.2 配置重定向
13.2.1 开启重定向
13.2.2 模块配置
13.2.3 重定向动作详细描述
13.3 配置限流功能
13.3.1 开启限流模块
13.3.2 模块配置
13.3.3 限制特定维度的流量
13.3.4 设置限流门限
13.3.5 设置限流动作
实 现 篇
第14章 BFE的基础实现
14.1 BFE的代码组织
14.2 BFE的进程模型
14.2.1 协程的分类
14.2.2 并发模型
14.2.3 并发能力
14.2.4 异常恢复机制
14.3 请求处理流程
14.3.1 连接的建立
14.3.2 连接的处理
14.3.3 请求的处理
14.3.4 请求的结束
14.3.5 连接的结束
14.4 请求路由实现
14.4.1 关键数据结构
14.4.2 目的租户路由
14.4.3 目的集群路由
14.5 负载均衡实现
14.5.1 全局负载均衡
14.5.2 分布式负载均衡
第15章 模块插件机制
15.1 BFE的回调点设置
15.2 BFE内置的扩展模块
15.3 模块框架的实现机制
15.3.1 模块基础类型
15.3.2 连接/请求处理及回调函数的调用
15.4 如何开发BFE扩展模块
15.4.1 配置加载
15.4.2 回调函数的编写和注册
15.4.3 模块状态的展示
第16章 核心协议实现
16.1 HTTP的实现
16.1.1 HTTP代码的组织
16.1.2 从用户读取HTTP请求
16.1.3 向后端转发请求并获取响应
16.1.4 向用户回复HTTP响应
16.2 HTTP2的实现
16.2.1 HTTP2代码的组织
16.2.2 HTTP2连接处理模块
16.2.3 HTTP2连接相关协程及关系
第17章 BFE的多进程GC机制
17.1 模型设计
17.1.1 多进程轮转机制
17.1.2 子进程状态定义
17.2 相关参数的确定
17.2.1 切换时间参数的选择
17.2.2 子进程数量的计算
17.2.3 内存消耗的计算
第1章 BFE简介
1.1 什么是BFE
1.2 BFE平台介绍
1.2.1 为什么需要构建BFE平台
1.2.2 BFE平台的主要功能
1.3 BFE开源项目介绍
1.3.1 BFE平台的模块组成
1.3.2 BFE开源项目中的内容
第2章 网络前端接入技术简介
2.1 什么是网络前端接入
2.2 网络前端接入面临的挑战
2.3 百度的网络前端接入方案
2.4 网络前端接入技术的发展趋势
第3章 网络负载均衡技术简介
3.1 负载均衡的概念
3.2 网络负载均衡功能的实现
3.2.1 机制说明
3.2.2 两种方式对比
3.3 四层负载均衡和七层负载均衡
设 计 篇
第4章 BFE的设计思想
4.1 BFE转发引擎重构的缘起
4.2 BFE为什么要基于Go语言
4.3 BFE转发引擎的主要设计思想
4.4 BFE和相关开源项目的对比
第5章 BFE的转发模型
5.1 转发模型概述
5.1.1 基本概念
5.1.2 转发过程
5.1.3 对多租户实现机制的讨论
5.2 BFE的路由转发机制
5.3 条件表达式
5.3.1 设计思想
5.3.2 基本概念
5.3.3 语法介绍
5.3.4 条件原语匹配的内容
5.3.5 条件原语名称的规范
5.4 内网流量调度机制
5.4.1 内网流量调度背景介绍
5.4.2 内网流量调度工作机制
5.4.3 内网转发的其他机制
第6章 与转发相关的关键机制
6.1 健康检查机制
6.1.1 健康检查的原理
6.1.2 主动健康检查和被动健康检查
6.1.3 分布式健康检查和集中式健康检查
6.1.4 BFE的健康检查
6.2 超时设置
6.2.1 BFE和客户端间通信的超时
6.2.2 BFE和后端实例间通信的超时
6.3 BFE信息透传
6.3.1 客户端IP地址的透传
6.3.2 其他信息的透传
6.4 限流机制
6.4.1 限流的概念
6.4.2 限流的配置
6.4.3 分布式限流
6.4.4 入口限流和目的限流
6.4.5 限流和内网流量调度
第7章 运维相关机制
7.1 监控机制
7.1.1 日志监控及其问题
7.1.2 BFE的内部状态输出
7.1.3 统计状态和日志的配合使用
7.2 Web Monitor基础库
7.2.1 Web Monitor概述
7.2.2 状态变量维护
7.2.3 延迟统计变量维护
7.2.4 建立专用的Web服务器
7.2.5 注册回调函数
7.3 日志机制
7.3.1 日志类型
7.3.2 日志打印的注意事项
7.3.3 BFE的访问日志
7.4 配置管理
7.4.1 BFE配置文件的分布
7.4.2 常规配置和动态配置
7.4.3 动态配置的实现机制
第8章 HTTPS的优化
8.1 HTTPS优化背景及必要性
8.2 HTTPS优化的挑战
8.3 HTTPS中的优化机制
8.4 BFE中HTTPS相关增强机制
操 作 篇
9章 BFE服务的安装部署
9.1 软件安装包下载安装
9.2 源代码编译方式安装
9.3 Docker方式安装
9.4 BFE命令行参数
9.5 查看BFE服务的运行状态
第10章 BFE服务的基础配置
10.1 场景说明
10.2 修改基础配置文件
10.3 转发的配置
10.3.1 转发配置流程
10.3.2 具体案例
10.3.3 服务访问验证
10.3.4 配置的重新加载
第11章 配置负载均衡算法及会话保持
11.1 子集群间的负载均衡
11.2 子集群级别的会话保持
11.2.1 配置实例
11.2.2 参数的具体含义
11.3 实例间的负载均衡
11.3.1 加权轮询配置示例
11.3.2 最小连接数的配置示例
11.4 实例级别的会话保持
第12章 配置HTTPS和更多协议
12.1 设置HTTPS基础配置
12.1.1 配置HTTPS端口
12.1.2 配置加密套件
12.1.3 配置服务端证书
12.1.4 配置TLS规则
12.2 配置TLS会话重用
12.2.1 配置会话缓存
12.2.2 配置会话票证
12.3 配置TLS双向认证
12.4 对不同安全等级的区分
12.5 支持更多协议
12.5.1 HTTP/2配置
12.5.2 SPDY配置
12.5.3 WebSocket配置
12.5.4 连接后端服务的协议
第13章 其他常用配置
13.1 配置重写
13.1.1 开启重写
13.1.2 模块配置
13.1.3 重写动作详细描述
13.2 配置重定向
13.2.1 开启重定向
13.2.2 模块配置
13.2.3 重定向动作详细描述
13.3 配置限流功能
13.3.1 开启限流模块
13.3.2 模块配置
13.3.3 限制特定维度的流量
13.3.4 设置限流门限
13.3.5 设置限流动作
实 现 篇
第14章 BFE的基础实现
14.1 BFE的代码组织
14.2 BFE的进程模型
14.2.1 协程的分类
14.2.2 并发模型
14.2.3 并发能力
14.2.4 异常恢复机制
14.3 请求处理流程
14.3.1 连接的建立
14.3.2 连接的处理
14.3.3 请求的处理
14.3.4 请求的结束
14.3.5 连接的结束
14.4 请求路由实现
14.4.1 关键数据结构
14.4.2 目的租户路由
14.4.3 目的集群路由
14.5 负载均衡实现
14.5.1 全局负载均衡
14.5.2 分布式负载均衡
第15章 模块插件机制
15.1 BFE的回调点设置
15.2 BFE内置的扩展模块
15.3 模块框架的实现机制
15.3.1 模块基础类型
15.3.2 连接/请求处理及回调函数的调用
15.4 如何开发BFE扩展模块
15.4.1 配置加载
15.4.2 回调函数的编写和注册
15.4.3 模块状态的展示
第16章 核心协议实现
16.1 HTTP的实现
16.1.1 HTTP代码的组织
16.1.2 从用户读取HTTP请求
16.1.3 向后端转发请求并获取响应
16.1.4 向用户回复HTTP响应
16.2 HTTP2的实现
16.2.1 HTTP2代码的组织
16.2.2 HTTP2连接处理模块
16.2.3 HTTP2连接相关协程及关系
第17章 BFE的多进程GC机制
17.1 模型设计
17.1.1 多进程轮转机制
17.1.2 子进程状态定义
17.2 相关参数的确定
17.2.1 切换时间参数的选择
17.2.2 子进程数量的计算
17.2.3 内存消耗的计算
猜您喜欢