BFE(Baidu Front End,百度統(tǒng)一前端)是百度的統(tǒng)一七層流量轉(zhuǎn)發(fā)平臺(tái)。BFE平臺(tái)目前已接入百度大部分流量,每日轉(zhuǎn)發(fā)請(qǐng)求接近1萬(wàn)億,峰值QPS超過(guò)1000萬(wàn)。在2019年百度春晚紅包活動(dòng)中,BFE平臺(tái)在超大用戶壓力、數(shù)次流量波峰下平穩(wěn)運(yùn)行,保證了春晚紅包活動(dòng)的順利進(jìn)行。
作為綜合的流量轉(zhuǎn)發(fā)平臺(tái),BFE平臺(tái)集成了以下4大功能:
流量接入和轉(zhuǎn)發(fā):支持HTTP、HTTPS、HTTP/2、QUIC等多種協(xié)議,并支持強(qiáng)大的應(yīng)用層路由能力
流量全局調(diào)度:支持由外網(wǎng)流量調(diào)度和內(nèi)網(wǎng)流量調(diào)度共同構(gòu)成的全局流量調(diào)度系統(tǒng)
安全和防攻擊:支持黑名單封禁、精細(xì)限流和應(yīng)用層防火墻(WAF)等多種防攻擊能力
實(shí)時(shí)數(shù)據(jù)分析:支持分鐘級(jí)的超高維度時(shí)序報(bào)表

作為BFE平臺(tái)的核心組件,BFE轉(zhuǎn)發(fā)引擎從2012年開(kāi)始研發(fā),并于2014年使用Go語(yǔ)言完成重構(gòu)。
由于基于Go語(yǔ)言,和業(yè)界普遍使用的Nginx開(kāi)源軟件相比,BFE具有以下優(yōu)勢(shì):
研發(fā)效率高:Go語(yǔ)言的開(kāi)發(fā)效率遠(yuǎn)高于C語(yǔ)言(及Lua),在代碼的可維護(hù)性方面也有巨大優(yōu)勢(shì)。
系統(tǒng)的安全和穩(wěn)定性高:Go語(yǔ)言沒(méi)有C語(yǔ)言固有的緩沖區(qū)溢出隱患,規(guī)避了大量的穩(wěn)定性和安全風(fēng)險(xiǎn);另外對(duì)于異??梢圆蹲?,保證程序在快速迭代上線的情況下也不崩潰。
有理由相信,從長(zhǎng)期趨勢(shì)看,基于更高級(jí)編程語(yǔ)言的軟件系統(tǒng)會(huì)逐步取得競(jìng)爭(zhēng)的優(yōu)勢(shì)。CPU等硬件資源的價(jià)格仍會(huì)快速下降,而開(kāi)發(fā)人力成本、項(xiàng)目研發(fā)風(fēng)險(xiǎn)、系統(tǒng)穩(wěn)定性/安全性方面會(huì)成為更重要的決策考慮。從這方面出發(fā),主要基于C語(yǔ)言的Nginx會(huì)逐步衰落,而類似BFE這樣的基于更高級(jí)編程語(yǔ)言的軟件會(huì)逐步成為主流。
另外,BFE在設(shè)計(jì)中,還特別增加了企業(yè)級(jí)應(yīng)用場(chǎng)景的考慮:
轉(zhuǎn)發(fā)場(chǎng)景的直接支持:和Nginx這樣從Web Server轉(zhuǎn)型為Proxy的進(jìn)化路徑不同,BFE直接為轉(zhuǎn)發(fā)場(chǎng)景設(shè)計(jì),從轉(zhuǎn)發(fā)模型和轉(zhuǎn)發(fā)配置方面更滿足轉(zhuǎn)發(fā)場(chǎng)景的需求
多租戶的支持:在云計(jì)算的場(chǎng)景下,多租戶復(fù)用是普遍的需求。在BFE的設(shè)計(jì)中,內(nèi)置提供了多租戶的支持
結(jié)構(gòu)化的配置:BFE的配置設(shè)計(jì),大量使用JSON這樣的結(jié)構(gòu)化方式,便于和相關(guān)配置管理系統(tǒng)對(duì)接
豐富的監(jiān)控探針:作為一個(gè)工業(yè)級(jí)軟件,在BFE的設(shè)計(jì)中充分考慮了線上監(jiān)控的需求,BFE程序通過(guò)HTTP方式向外暴露數(shù)千個(gè)內(nèi)部狀態(tài)變量

為了促進(jìn)負(fù)載均衡技術(shù)的交流和發(fā)展,BFE轉(zhuǎn)發(fā)引擎于2019年夏天正式開(kāi)源。
(https://github.com/baidu/bfe)
BFE目前已開(kāi)源并支持以下重要能力:
1、主流網(wǎng)絡(luò)協(xié)議接入
支持HTTP/HTTPS/SPDY/HTTP2/WebSocket等
支持TLS/HTTP/ WebSocket反向代理模式
2、可擴(kuò)展插件框架
通過(guò)可擴(kuò)展插件框架,快速定制開(kāi)發(fā)擴(kuò)展模塊,滿足業(yè)務(wù)定制化需
求
內(nèi)置重寫(xiě)、重定向、流量修改、封禁等豐富插件
3、基于請(qǐng)求內(nèi)容的分流
基于領(lǐng)域?qū)S姓Z(yǔ)言的分流規(guī)則,滿足復(fù)雜業(yè)務(wù)場(chǎng)景定制化流量轉(zhuǎn)發(fā)
支持完備的分流條件原語(yǔ)集,包括基于請(qǐng)求內(nèi)容(URI/Header/Cookie等)以及請(qǐng)求上下文(IP、協(xié)議、標(biāo)簽、時(shí)間等)的條件原語(yǔ)。
4、靈活的負(fù)載均衡策略
支持集群級(jí)別負(fù)載均衡及實(shí)例級(jí)別負(fù)載均衡,實(shí)現(xiàn)多可用區(qū)容災(zāi)及過(guò)載保護(hù)
內(nèi)置加權(quán)輪詢、加權(quán)最小連接數(shù)策略,基于IP或請(qǐng)求內(nèi)容識(shí)別用戶實(shí)現(xiàn)會(huì)話保持
關(guān)于BFE開(kāi)源版本詳情及后續(xù)路線圖,有興趣的用戶請(qǐng)關(guān)注
https://github.com/baidu/bfe,或登錄github直接搜索BFE。
BFE轉(zhuǎn)發(fā)引擎的研發(fā)過(guò)程,秉承了百度優(yōu)良的研發(fā)傳統(tǒng),經(jīng)過(guò)了多年的技術(shù)積累。BFE已經(jīng)在百度穩(wěn)定運(yùn)行多年,并歷經(jīng)多次大流量的洗禮。以開(kāi)源貢獻(xiàn)社區(qū),是百度技術(shù)價(jià)值體現(xiàn)的重要方式。希望能借BFE開(kāi)源的機(jī)會(huì),與各位同行切磋技術(shù),共建網(wǎng)絡(luò)接入領(lǐng)域的開(kāi)源技術(shù)生態(tài)。
特別提醒:本網(wǎng)內(nèi)容轉(zhuǎn)載自其他媒體,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。
相關(guān)推薦
- AI工具導(dǎo)航網(wǎng)站,未來(lái)的發(fā)展前景怎么樣?
- 在RAKsmart服務(wù)器上怎么管理數(shù)據(jù)科學(xué)工作流
- raksmart日本云服務(wù)器產(chǎn)品優(yōu)勢(shì)
- 當(dāng)分成收益腰斬:站長(zhǎng)必須掌握的3條自媒體變現(xiàn)新通路
- 算力服務(wù)器多少錢(qián)一臺(tái)??jī)r(jià)格因素與選購(gòu)指南
- 美國(guó)站群服務(wù)器搭建sk5需要什么配置?
- 美國(guó)服務(wù)器防攻擊技術(shù)有哪些
- 當(dāng)分成收益腰斬:站長(zhǎng)必須掌握的3條自媒體變現(xiàn)新通路