万亿级流量转发:BFE核心技术与实现
- ISBN:9787121415654
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:280
- 出版时间:2021-07-01
- 条形码:9787121415654 ; 978-7-121-41565-4
本书特色
适读人群 :本书面向的读者包括计算机网络方向的研究者、网络相关技术的开发者、一般后台程序的开发者和负载均衡系统的使用者等。突破云端海量极限、百度十年技术积淀——BFE核心技术首次落地成书。 全球shou个以Go语言实现万亿次流量转发的大规模平台。 经历百度春晚红包巅峰决战,是力扛极限并发流量冲击的实战宝典。 浓缩百度技术团队多年对平台架构及迭代的技术、创新、实践和积累。 完整呈现BFE 原理设计、架构实践和开发扩展,同时对流量调度、转发接入、负载均衡有更深入的介绍。
内容简介
本书围绕BFE 开源项目,介绍网络前端接入和网络负载均衡的相关技术原理,说明BFE开源软件的设计思想和实现机制,讲解如何基于BFE开源软件搭建网络接入平台。本书共17 章,分为四个部分。部分为原理篇,介绍BFE 开源项目的概貌,并对网络前端接入技术和网络负载均衡技术做简要介绍;第二部分为设计篇,介绍BFE 开源项目的设计细节,包括BFE 的设计思想、BFE 的转发模型、BFE 的关键机制和HTTPS 的优化等;第三部分为操作篇,说明如何安装和部署BFE、如何在各种使用场景下配置BFE;第四部分为实现篇,从处理流程、插件机制、协议实现等方面说明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简介 本章将对BFE做一个概括介绍,主要内容如下。 (1)什么是BFE。 (2)构建BFE平台的出发点及平台主要功能。 (3)BFE开源项目情况。 1.1 什么是BFE BFE*初是Baidu Front End(百度统一前端)的缩写。BFE平台是百度统一的七层负载均衡接入转发平台,该平台从2012年开始建设,截至2020年年底,平台每日转发的请求超过1万亿次,日峰值请求超过每秒1000万次查询。 2014年,BFE平台的核心转发引擎基于Go语言重构,并于2015年1月在百度全量上线。在全世界范围内,BFE平台是较早将Go语言用于负载均衡场景及大规模使用的项目。 2019年年初,BFE平台成功地支持了百度春晚红包项目。在本次项目中,BFE平台提供了每秒亿次级别请求的转发能力,在海量流量下支持了HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer,以安全为目标的HTTP通道)卸载,以及精确限流等关键能力,保证了活动的顺利进行。 2019年7月,BFE平台的转发引擎对外开源。因为BFE开源项目在业界的巨大影响力,所以项目名称仍保留英文缩写BFE,但英文全称更名为Beyond Front End(中文意为“超越前端”),我们希望通过BFE的开源推动负载均衡技术的发展。 2020年6月,BFE被CNCF(Cloud Native Computing Foundation,云原生计算基金会)接受为“沙盒项目(Sandbox Project)”。 BFE开源项目的地址为GitHub官网上的bfenetworks/bfe,也可以在GitHub中搜索“bfe”。 1.2 BFE平台介绍 本节介绍BFE平台的情况。首先介绍为什么需要构建BFE平台,然后介绍BFE平台的主要功能。 1.2.1 为什么需要构建BFE平台 在传统方案中,并不存在统一的七层负载均衡接入层,如图1.1所示。在存在多个服务的场景下,各业务流量在经四层负载均衡的转发后,直接到达业务的Web服务集群。 这种方案存在以下问题。 (1)功能重复开发。在协议处理、安全等方面,很多重要的功能都需要支持,考虑到各种业务集群在语言、技术栈上的差异,在多个不同的业务集群上支持相同的功能会带来很高的研发成本。 (2)运维成本高。在某些场景下,需要多个业务同时上线相同的安全策略,在缺乏统一七层负载均衡接入层的情况下,需要在多个业务集群反复上线。这不仅仅带来大量的上线工作成本,而且也使得策略的上线时间很长。 (3)流量统一控制能力低。由于各业务集群的分散性,在公司层面,缺乏对流量情况的统一观察和控制能力,这也阻碍了对网络资源的统一控制,以及对网络服务质量的统一管理。 在引入BFE平台后,所有流量都经过BFE的接入转发后才到达业务Web服务集群,如图1.2所示,从而带来以下优点。 (1)功能统一开发。无论业务集群的技术有何差异,各种相关功能只需要在BFE平台做一次开发即可。 (2)运维统一管理。对于需要普遍使用的安全策略,只需要在平台上统一上线即可。 (3)增强流量控制能力。和四层负载均衡相比,七层负载均衡可以“看到”流量中更多的内容,可以在流量转发、安全、数据统计等方面提供更强的能力。 1.2.2 BFE平台的主要功能 作为一个综合的大型七层负载均衡流量转发平台,BFE平台包括以下4个主要功能,如图1.3所示。 (1)接入和转发。BFE平台可以接收处理HTTP、HTTPS、HTTP/2、QUIC(Quick UDP Internet Connections,基于UDP的低延迟的互联网传输层协议)等多种协议的流量,并基于HTTP 头部信息做分流转发。 (2)流量调度。BFE平台包括由内网流量调度和外网流量调度所组成的两层流量调度体系。 (3)安全防攻击。BFE平台支持多种安全能力,包括黑名单封禁、大容量限流、WAF(Web Application Firewall,应用层防火墙)等。 (4)数据分析。BFE平台可以基于转发日志生成实时流量报表,以此反映业务的流量变化情况及下游业务集群的健康状态(错误数、延迟等)。
作者简介
章 淼 博士,百度智能云架构师,BFE开源项目发起人。1997年至2006年在清华大学从事互联网协议和网络体系结构的研究。2012年加入百度,一直从事网络基础架构的研发工作。同时积极推动百度的代码质量和工程能力的提升,目前兼任百度代码规范委员会主席。 杨思杰 百度资深研发工程师,BFE开源项目主要负责人。从零开始参与百度新一代BFE转发平台的建设及创新,拥有近10年的在网络接入和系统架构方面的深入研究和实践经验。关注于通过开源驱动基础软件可持续发展及创造更大的价值。 戴 明 百度资深研发工程师,主要从事BFE相关系统和产品的研发工作。曾在朗讯、诺基亚等电信设备公司工作多年,从事电信软件研发和架构设计工作。 陶春华 博士,百度资深研发工程师。2010年毕业于天津大学计算机系,2013年加入百度,先后参与智能流量调度、BFE的Go语言重构、BFE管控平台等重大项目。目前工作重心是负载均衡商业产品的研发。
-
深度学习的数学
¥43.5¥69.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥22.1¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥83.3¥119.0 -
Visual Basic 语言程序设计基础(第6版)
¥32.0¥45.0 -
贝叶斯推理与机器学习
¥139.3¥199.0