百度萬億流量的轉發引擎BFE宣布開(kāi)源
作爲綜合的流量轉發平台,BFE平台集成了以下(xià)4大(dà)功能:
-
流量接入和轉發:支持HTTP、HTTPS、HTTP/2、QUIC等多種協議,并支持強大(dà)的應用層路由能力
-
流量全局調度:支持由外(wài)網流量調度和内網流量調度共同構成的全局流量調度系統
-
安全和防攻擊:支持黑名單封禁、精細限流和應用層防火(huǒ)牆(WAF)等多種防攻擊能力
-
實時數據分(fēn)析:支持分(fēn)鍾級的超高維度時序報表
作爲BFE平台的核心組件,BFE轉發引擎從2012年開(kāi)始研發,并于2014年使用Go語言完成重構。
由于基于Go語言,和業界普遍使用的Nginx開(kāi)源軟件相比,BFE具有以下(xià)優勢:
-
研發效率高:Go語言的開(kāi)發效率遠高于C語言(及Lua),在代碼的可維護性方面也有巨大(dà)優勢。
-
系統的安全和穩定性高:Go語言沒有C語言固有的緩沖區溢出隐患,規避了大(dà)量的穩定性和安全風險;另外(wài)對于異常可以捕捉,保證程序在快速叠代上線的情況下(xià)也不崩潰。
有理由相信,從長期趨勢看,基于更高級編程語言的軟件系統會逐步取得競争的優勢。CPU等硬件資(zī)源的價格仍會快速下(xià)降,而開(kāi)發人力成本、項目研發風險、系統穩定性/安全性方面會成爲更重要的決策考慮。從這方面出發,主要基于C語言的Nginx會逐步衰落,而類似BFE這樣的基于更高級編程語言的軟件會逐步成爲主流。
另外(wài),BFE在設計中(zhōng),還特别增加了企業級應用場景的考慮:
-
轉發場景的直接支持:和Nginx這樣從Web Server轉型爲Proxy的進化路徑不同,BFE直接爲轉發場景設計,從轉發模型和轉發配置方面更滿足轉發場景的需求
-
多租戶的支持:在雲計算的場景下(xià),多租戶複用是普遍的需求。在BFE的設計中(zhōng),内置提供了多租戶的支持
-
結構化的配置:BFE的配置設計,大(dà)量使用JSON這樣的結構化方式,便于和相關配置管理系統對接
-
豐富的監控探針:作爲一(yī)個工(gōng)業級軟件,在BFE的設計中(zhōng)充分(fēn)考慮了線上監控的需求,BFE程序通過HTTP方式向外(wài)暴露數千個内部狀态變量
爲了促進負載均衡技術的交流和發展,BFE轉發引擎于2019年夏天正式開(kāi)源。
(https://github.com/baidu/bfe)
BFE目前已開(kāi)源并支持以下(xià)重要能力:
1、主流網絡協議接入
-
支持HTTP/HTTPS/SPDY/HTTP2/WebSocket等
-
支持TLS/HTTP/ WebSocket反向代理模式
2、可擴展插件框架
-
通過可擴展插件框架,快速定制開(kāi)發擴展模塊,滿足業務定制化需
求
-
内置重寫、重定向、流量修改、封禁等豐富插件
3、基于請求内容的分(fēn)流
-
基于領域專有語言的分(fēn)流規則,滿足複雜(zá)業務場景定制化流量轉發
-
支持完備的分(fēn)流條件原語集,包括基于請求内容(URI/Header/Cookie等)以及請求上下(xià)文(IP、協議、标簽、時間等)的條件原語。
4、靈活的負載均衡策略
-
支持集群級别負載均衡及實例級别負載均衡,實現多可用區容災及過載保護
-
内置加權輪詢、加權最小(xiǎo)連接數策略,基于IP或請求内容識别用戶實現會話(huà)保持
關于BFE開(kāi)源版本詳情及後續路線圖,有興趣的用戶請關注
https://github.com/baidu/bfe,或登錄github直接搜索BFE。
BFE轉發引擎的研發過程,秉承了百度優良的研發傳統,經過了多年的技術積累。BFE已經在百度穩定運行多年,并曆經多次大(dà)流量的洗禮。以開(kāi)源貢獻社區,是百度技術價值體(tǐ)現的重要方式。希望能借BFE開(kāi)源的機會,與各位同行切磋技術,共建網絡接入領域的開(kāi)源技術生(shēng)态。
- IT服務外(wài)包
- IT采購
- 弱電(diàn)工(gōng)程
- 系統集成
- 網絡安全
咨詢電(diàn)話(huà):
021-51697581實時掌握逾仕最新動态