萬億級流量轉發: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 內存消耗的計算