-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
10/8 新書到! 10/1 新書到! 9/24 新書到! 9/18 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

萬億級流量轉發:BFE核心技術與實現

( 簡體 字)
作者:章淼 等類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社萬億級流量轉發:BFE核心技術與實現 3dWoo書號: 55050
詢問書籍請說出此書號!

有庫存
NT售價: 445

出版日:7/1/2021
頁數:280
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121415654
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:



從2014年4月寫下Go語言版本BFE的第一行代碼起,7年多的時間過去了。從2015年1月Go語言版本BFE全量上線開始,BFE至今已經在百度穩定運行了6年多的時間,每天轉發請求超過萬億次。

BFE(Baidu Front End,百度統一前端)是百度統一七層流量轉發平臺,當你訪問百度的時候,很可能已經在使用BFE的服務了。
百度的BFE團隊始建于2012年。當2012年年底我加入百度的時候,整個團隊只有6~7個人。這個團隊的創始人是夏華夏同學(現在在美團),他為BFE團隊的工作方向做了奠基性規劃。BFE初期的轉發引擎是基于C語言的,聽說是楊震原同學(現在在頭條)的大作。
2014年年初,基于各種考慮,我們決定對轉發引擎進行重構。這次重構前后花費了3個季度,投入了超過30個人月的資源。在面對多次失敗的風險后,Go語言版本的BFE終于出爐了。
這里必須感謝部門領導李碩和團隊經理賀鋒的大力支持,感謝管理層的高度信任;感謝直接參與的幾位同學(李炳毅、魏為、楊思杰、陶春華等),大家都是冒著失敗離職的風險,硬著頭皮把這個項目做下來的。
我必須要感謝百度。到目前為止,我仍然堅定地認為,百度是中國最適合做技術的公司。百度給了工程師最大的尊重和自由,也愿意為了技術研發承擔最大的風險。BFE團隊的另一個項目GTC(全局流量調度),前后研發了5年時間。曾經有一個朋友告訴我,也就只有百度可以給團隊這么多的時間,如果在其他公司,一年內做不出來,項目很可能就被取消了。能夠在百度、在中國做全球最領先的技術,我感到無比驕傲。

2019年7月,BFE的轉發引擎對外開源。項目名稱仍保留英文縮寫BFE,英文全稱更名為Beyond Front End(中文意為“超越前端”)。我們希望通過BFE的開源推動負載均衡技術的發展。
從開源的那天起,BFE就已經開始了新的征程。BFE得到了各方的廣泛關注,有不少新增的功能是由百度之外的開發者貢獻的。BFE也被一些客戶選擇用于關鍵的業務場景,在度小滿金融、央視網、招商銀行等處都有BFE的身影。作為一個做技術的人,能夠讓自己所做的工作為社會創造價值,這是莫大的幸福和榮幸。

在BFE開源后,我們不斷地收到大家提出的一些問題。網絡負載均衡本身是一個比較專業和復雜的技術方向;BFE是為面向工業級使用場景而設計的,在模型和機制上和其他同類軟件相比,會更加復雜。以上這些因素讓一些使用者和開發者在理解BFE的機制方面遇到了困難。希望通過《深入理解BFE》這本書,能夠幫助讀者更好地了解網絡負載均衡的相關技術,讓讀者更容易地理解BFE的設計機制和使用方法。

BFE項目,是一群技術人的汗水、夢想和追求。
BFE開源,是為了交流、共享,為全中國、全世界的同行賦能。

感謝各位讀者的關注,歡迎大家使用BFE開源項目,并提出反饋或參與開發!

章淼 博士
百度BFE團隊技術負責人、百度代碼規范委員會主席
2021年6月25日寫于百度
內容簡介:

本書圍繞BFE 開源項目,介紹網絡前端接入和網絡負載均衡的相關技術原理,說明BFE開源軟件的設計思想和實現機制,講解如何基于BFE開源軟件搭建網絡接入平臺。本書共17 章,分為四個部分。第一部分為原理篇,介紹BFE 開源項目的概貌,并對網絡前端接入技術和網絡負載均衡技術做簡要介紹;第二部分為設計篇,介紹BFE 開源項目的設計細節,包括BFE 的設計思想、BFE 的轉發模型、BFE 的關鍵機制和HTTPS 的優化等;第三部分為操作篇,說明如何安裝和部署BFE、如何在各種使用場景下配置BFE;第四部分為實現篇,從處理流程、插件機制、協議實現等方面說明BFE的實現機制。
目錄:

原 理 篇
第1 章 BFE 簡介···········3
1.1 什么是BFE···········3
1.2 BFE平臺介紹···········4
1.2.1 為什么需要構建BFE 平臺·······4
1.2.2 BFE平臺的主要功能·······6
1.3 BFE開源項目介紹·········7
1.3.1 BFE平臺的模塊組成·······7
1.3.2 BFE開源項目中的內容········9
第2 章 網絡前端接入技術簡介·········10
2.1 什么是網絡前端接入········10
2.2 網絡前端接入面臨的挑戰········11
2.3 百度的網絡前端接入方案········13
2.4 網絡前端接入技術的發展趨勢········15
第3 章 網絡負載均衡技術簡介·········24
3.1 負載均衡的概念·········24
3.2 網絡負載均衡功能的實現········25
深入理解BFE
·VI·
3.2.1 機制說明·········25
3.2.2 兩種方式對比········27
3.3 四層負載均衡和七層負載均衡········28
設 計 篇
第4 章 BFE 的設計思想··········33
4.1 BFE轉發引擎重構的緣起········33
4.2 BFE為什么要基于Go 語言·······34
4.3 BFE轉發引擎的主要設計思想········37
4.4 BFE和相關開源項目的對比········38
第5 章 BFE 的轉發模型··········42
5.1 轉發模型概述···········42
5.1.1 基本概念·········42
5.1.2 轉發過程·········43
5.1.3 對多租戶實現機制的討論······46
5.2 BFE的路由轉發機制·········47
5.3 條件表達式···········49
5.3.1 設計思想·········49
5.3.2 基本概念·········50
5.3.3 語法介紹·········51
5.3.4 條件原語匹配的內容········52
5.3.5 條件原語名稱的規范········54
5.4 內網流量調度機制··········55
5.4.1 內網流量調度背景介紹········55
5.4.2 內網流量調度工作機制········60
目 錄
·VII·
5.4.3 內網轉發的其他機制········65
第6 章 與轉發相關的關鍵機制·········68
6.1 健康檢查機制···········68
6.1.1 健康檢查的原理········69
6.1.2 主動健康檢查和被動健康檢查······69
6.1.3 分布式健康檢查和集中式健康檢查····73
6.1.4 BFE的健康檢查·········77
6.2 超時設置···········77
6.2.1 BFE和客戶端間通信的超時······78
6.2.2 BFE和后端實例間通信的超時······81
6.3 BFE信息透傳···········84
6.3.1 客戶端IP地址的透傳········84
6.3.2 其他信息的透傳········85
6.4 限流機制···········89
6.4.1 限流的概念·········89
6.4.2 限流的配置·········91
6.4.3 分布式限流·········91
6.4.4 入口限流和目的限流········94
6.4.5 限流和內網流量調度········95
第7 章 運維相關機制··········97
7.1 監控機制···········97
7.1.1 日志監控及其問題········98
7.1.2 BFE的內部狀態輸出·······99
7.1.3 統計狀態和日志的配合使用······101
深入理解BFE
·VIII·
7.2 Web Monitor基礎庫·········101
7.2.1 Web Monitor概述·······102
7.2.2 狀態變量維護········102
7.2.3 延遲統計變量維護········104
7.2.4 建立專用的Web服務器·······106
7.2.5 注冊回調函數········107
7.3 日志機制···········108
7.3.1 日志類型·········108
7.3.2 日志打印的注意事項········109
7.3.3 BFE的訪問日志·········110
7.4 配置管理··········.111
7.4.1 BFE配置文件的分布·······.111
7.4.2 常規配置和動態配置········112
7.4.3 動態配置的實現機制········113
第8 章 HTTPS 的優化··········116
8.1 HTTPS優化背景及必要性·······116
8.2 HTTPS優化的挑戰········117
8.3 HTTPS中的優化機制·········118
8.4 BFE中HTTPS 相關增強機制········120
操 作 篇
第9 章 BFE 服務的安裝部署········129
9.1 軟件安裝包下載安裝········129
9.2 源代碼編譯方式安裝········132
9.3 Docker方式安裝·········133
目 錄
·IX·
9.4 BFE命令行參數·········134
9.5 查看BFE 服務的運行狀態·······135
第10 章 BFE 服務的基礎配置········136
10.1 場景說明···········136
10.2 修改基礎配置文件········137
10.3 轉發的配置···········138
10.3.1 轉發配置流程········138
10.3.2 具體案例·········139
10.3.3 服務訪問驗證········146
10.3.4 配置的重新加載········146
第11 章 配置負載均衡算法及會話保持·······147
11.1 子集群間的負載均衡········147
11.2 子集群級別的會話保持········149
11.2.1 配置實例·········149
11.2.2 參數的具體含義········150
11.3 實例間的負載均衡········151
11.3.1 加權輪詢配置示例········151
11.3.2 最小連接數的配置示例······153
11.4 實例級別的會話保持········154
第12 章 配置HTTPS 和更多協議·······155
12.1 設置HTTPS 基礎配置········155
12.1.1 配置HTTPS 端口·······156
12.1.2 配置加密套件········156
12.1.3 配置服務端證書········156
深入理解BFE
·X·
12.1.4 配置TLS 規則·········157
12.2 配置TLS 會話重用·········158
12.2.1 配置會話緩存········159
12.2.2 配置會話票證········160
12.3 配置TLS 雙向認證·········161
12.4 對不同安全等級的區分········163
12.5 支持更多協議·········164
12.5.1 HTTP/2配置·········165
12.5.2 SPDY 配置········166
12.5.3 WebSocket配置·········167
12.5.4 連接后端服務的協議········169
第13 章 其他常用配置··········171
13.1 配置重寫···········171
13.1.1 開啟重寫·········171
13.1.2 模塊配置·········171
13.1.3 重寫動作詳細描述········173
13.2 配置重定向···········177
13.2.1 開啟重定向········177
13.2.2 模塊配置·········177
13.2.3 重定向動作詳細描述········178
13.3 配置限流功能·········180
13.3.1 開啟限流模塊········180
13.3.2 模塊配置·········181
13.3.3 限制特定維度的流量········182
13.3.4 設置限流門限········183
13.3.5 設置限流動作········184
目 錄
·XI·
實 現 篇
第14 章 其他常用配置··········187
14.1 BFE的代碼組織·········187
14.2 BFE的進程模型·········190
14.2.1 協程的分類·········190
14.2.2 并發模型·········191
14.2.3 并發能力·········192
14.2.4 異常恢復機制········192
14.3 請求處理流程·········193
14.3.1 連接的建立·········193
14.3.2 連接的處理·········194
14.3.3 請求的處理·········196
14.3.4 請求的結束·········198
14.3.5 連接的結束·········199
14.4 請求路由實現·········199
14.4.1 關鍵數據結構········200
14.4.2 目的租戶路由········203
14.4.3 目的集群路由········204
14.5 負載均衡實現·········206
14.5.1 全局負載均衡········207
14.5.2 分布式負載均衡········210
第15 章 模塊插件機制··········214
15.1 BFE的回調點設置·········214
15.2 BFE內置的擴展模塊·········216
15.3 模塊框架的實現機制········217
深入理解BFE
·XII·
15.3.1 模塊基礎類型········217
15.3.2 連接/請求處理及回調函數的調用·····223
15.4 如何開發BFE擴展模塊·······224
15.4.1 配置加載·········225
15.4.2 回調函數的編寫和注冊······226
15.4.3 模塊狀態的展示········228
第16 章 核心協議實現··········231
16.1 HTTP的實現··········231
16.1.1 HTTP 代碼的組織·······231
16.1.2 從用戶讀取HTTP 請求······233
16.1.3 向后端轉發請求并獲取響應······236
16.1.4 向用戶回復HTTP 響應······239
16.2 HTTP2的實現··········240
16.2.1 HTTP2 代碼的組織·······240
16.2.2 HTTP2 連接處理模塊·······241
16.2.3 HTTP2 連接相關協程及關系·····243
第17 章 BFE 的多進程GC 機制········249
17.1 模型設計···········249
17.1.1 多進程輪轉機制········250
17.1.2 子進程狀態定義········252
17.2 相關參數的確定··········253
17.2.1 切換時間參數的選擇········253
17.2.2 子進程數量的計算········255
17.2.3 內存消耗的計算········256
序: