歡迎您光臨本站 註冊首頁

百度萬億流量的轉發引擎 BFE 開源了!

←手機掃碼閱讀     admin @ 2019-11-18 , reply:0

BFE(Baidu Front End,百度統一前端)是百度的統一七層流量轉發平台。BFE平台目前已接入百度大部分流量,每日轉發請求接近1萬億,峰值QPS超過1000萬。在2019年百度春晚紅包活動中,BFE平台在超大用戶壓力、數次流量波峰下平穩運行,保證了春晚紅包活動的順利進行。

作為綜合的流量轉發平台,BFE平台集成了以下4大功能:

  • 流量接入和轉發:支持HTTP、HTTPS、HTTP/2、QUIC等多種協議,並支持強大的應用層路由能力

  • 流量全局調度:支持由外網流量調度和內網流量調度共同構成的全局流量調度系統

  • 安全和防攻擊:支持黑名單封禁、精細限流和應用層防火牆(WAF)等多種防攻擊能力

  • 實時數據分析:支持分鐘級的超高維度時序報表

作為BFE平台的核心組件,BFE轉發引擎從2012年開始研發,並於2014年使用Go語言完成重構。

由於基於Go語言,和業界普遍使用的Nginx開源軟體相比,BFE具有以下優勢:

  • 研發效率高:Go語言的開發效率遠高於C語言(及Lua),在代碼的可維護性方面也有巨大優勢。

  • 系統的安全和穩定性高:Go語言沒有C語言固有的緩衝區溢出隱患,規避了大量的穩定性和安全風險;另外對於異常可以捕捉,保證程序在快速迭代上線的情況下也不崩潰。

有理由相信,從長期趨勢看,基於更高級編程語言的軟體系統會逐步取得競爭的優勢。CPU等硬體資源的價格仍會快速下降,而開發人力成本、項目研發風險、系統穩定性/安全性方面會成為更重要的決策考慮。從這方面出發,主要基於C語言的Nginx會逐步衰落,而類似BFE這樣的基於更高級編程語言的軟體會逐步成為主流。

另外,BFE在設計中,還特別增加了企業級應用場景的考慮:

  • 轉發場景的直接支持:和Nginx這樣從Web Server轉型為Proxy的進化路徑不同,BFE直接為轉發場景設計,從轉發模型和轉發配置方面更滿足轉發場景的需求

  • 多租戶的支持:在雲計算的場景下,多租戶復用是普遍的需求。在BFE的設計中,內置提供了多租戶的支持

  • 結構化的配置:BFE的配置設計,大量使用JSON這樣的結構化方式,便於和相關配置管理系統對接

  • 豐富的監控探針:作為一個工業級軟體,在BFE的設計中充分考慮了線上監控的需求,BFE程序通過HTTP方式向外暴露數千個內部狀態變數

為了促進負載均衡技術的交流和發展,BFE轉發引擎於2019年夏天正式開源。

https://github.com/baidu/bfe

BFE目前已開源並支持以下重要能力:

1、主流網路協議接入

  • 支持HTTP/HTTPS/SPDY/HTTP2/WebSocket等

  • 支持TLS/HTTP/ WebSocket反向代理模式

2、可擴展插件框架

  • 通過可擴展插件框架,快速定製開發擴展模塊,滿足業務定製化需

  • 內置重寫、重定向、流量修改、封禁等豐富插件

3、基於請求內容的分流

  • 基於領域專有語言的分流規則,滿足複雜業務場景定製化流量轉發

  • 支持完備的分流條件原語集,包括基於請求內容(URI/Header/Cookie等)以及請求上下文(IP、協議、標籤、時間等)的條件原語。

4、靈活的負載均衡策略

  • 支持集群級別負載均衡及實例級別負載均衡,實現多可用區容災及過載保護

  • 內置加權輪詢、加權最小連接數策略,基於IP或請求內容識別用戶實現會話保持

關於BFE開源版本詳情及後續路線圖,有興趣的用戶請關注

https://github.com/baidu/bfe,或登錄github直接搜索BFE

BFE轉發引擎的研發過程,秉承了百度優良的研發傳統,經過了多年的技術積累。BFE已經在百度穩定運行多年,並歷經多次大流量的洗禮。以開源貢獻社區,是百度技術價值體現的重要方式。希望能借BFE開源的機會,與各位同行切磋技術,共建網路接入領域的開源技術生態。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/111425/bfe-opensouced
百度萬億流量的轉發引擎 BFE 開源了!已經有171次圍觀

http://coctec.com/news/all/show-post-219874.html