写点什么

百度正式开源转发引擎 BFE,曾支撑春晚红包百亿流量

  • 2019-11-15
  • 本文字数:1157 字

    阅读完需:约 4 分钟

百度正式开源转发引擎BFE,曾支撑春晚红包百亿流量

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 语言固有的缓冲区溢出隐患,规避了大量的稳定性和安全风险;另外对于异常可以捕捉,保证程序在快速迭代上线的情况下也不崩溃。


另外,BFE 在设计中,还特别增加了企业级应用场景的考虑:


• 转发场景的直接支持:和 Nginx 这样从 Web Server 转型为 Proxy 的进化路径不同,BFE 直接为转发场景设计,从转发模型和转发配置方面更满足转发场景的需求


• 多租户的支持:在云计算的场景下,多租户复用是普遍的需求。在 BFE 的设计中,内置提供了多租户的支持


• 结构化的配置:BFE 的配置设计,大量使用 JSON 这样的结构化方式,便于和相关配置管理系统对接


• 丰富的监控探针:作为一个工业级软件,在 BFE 的设计中充分考虑了线上监控的需求,BFE 程序通过 HTTP 方式向外暴露数千个内部状态变量



为了促进负载均衡技术的交流和发展,BFE 转发引擎于 2019 年夏天正式开源


BFE 目前已开源并支持以下重要能力:


1、主流网络协议接入


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


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


2、可扩展插件框架


• 通过可扩展插件框架,快速定制开发扩展模块,满足业务定制化需求


• 内置重写、重定向、流量修改、封禁等丰富插件


3、基于请求内容的分流


• 基于领域专有语言的分流规则,满足复杂业务场景定制化流量转发


• 支持完备的分流条件原语集,包括基于请求内容(URI/Header/Cookie 等)以及请求上下文(IP、协议、标签、时间等)的条件原语。


4、灵活的负载均衡策略


• 支持集群级别负载均衡及实例级别负载均衡,实现多可用区容灾及过载保护


• 内置加权轮询、加权最小连接数策略,基于 IP 或请求内容识别用户实现会话保持


关于 BFE 开源版本详情及后续路线图,有兴趣的用户请关注:https://github.com/baidu/bfe


2019-11-15 14:263978

评论

发布
暂无评论
发现更多内容

马云:数字货币可能会重新定义货币

CECBC

金融

架構師訓練營第 1 期 - 第 05 周作業

Panda

架構師訓練營第 1 期

第五周课后总结

饭桶

现场突击京东程序员的购物车!看看"11.11"都买啥?

京东科技开发者

程序人生

Javaer 进阶必看的 RocketMQ ,就这篇了

yes

RocketMQ 消息队列

第五周课后练习

饭桶

黑幕!爆京东18A技术专家纯手打:小团队构建大网站架构实战

996小迁

Java 学习 架构 面试 笔记

二十四、深入Python多进程multiprocessing模块

刘润森

Python

你用过宏##粘贴函数,然后用函数指针查找执行吗?今天就给你说道说道

良知犹存

c c++

程序员跳槽,只要用好(2+2)方法论,绝对可以找到一家好公司

Java架构师迁哥

这里有一份Java程序员的珍藏书单,请您注意查收

捡田螺的小男孩

Java 后端 PDF

SpringCloud Alibaba开篇:SpringCloud这么火,为何还要学习SpringCloud Alibaba?

冰河

分布式 微服务 高性能 SpringCloud Alibaba

openEuler开源下一代全场景虚拟化平台StratoVirt

openEuler

开源 虚拟化 openEuler stratovirt

openEuler进化记:一颗探索宇宙的生态之星

脑极体

分布式关系数据库

韩向民

缓存架构不够好,系统容易瘫痪

架构师修行之路

缓存 微服务 架构设计

anyRTC与京东智联云市场达成战略合作,携手音视频平台

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

架构师训练营第六周作业

Geek_4c1353

搜狗搜索或成为企鹅号流量入口:腾讯欲实现自己的流量闭环

石头IT视角

穆长春:数字人民币“双离线”支付开发完毕后续将试点

CECBC

数字钱包

既不能神化,也不要泛化区块链

CECBC

金融 数字技术

保证缓存与数据库的数据一致性不是很容易

架构师修行之路

缓存 一致性

一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?

楼下小黑哥

支付宝 微信支付 支付系统 支付

来自朋友最近阿里、腾讯、美团等P7岗位面试题

艾小仙

Java 阿里巴巴 程序员 腾讯 面试

甲方日常 38

句子

工作 随笔杂谈 日常

算法训练营毕业总结——以此自勉

Airship

算法 算法和数据结构

java安全编码指南之:文件IO操作

程序那些事

java安全编码 java安全 java安全编码指南 java代码规范

ARTS打卡 第21周

引花眠

微服务 ARTS 打卡计划 springboot

架构师训练营第 1 期第 6 周作业

业哥

云原生时代 容器持久化存储的最佳方式是什么?

京东科技开发者

数据库 云存储

云开发·多次订阅一次性订阅消息后定时发送

Yukun

微信小程序 小程序云开发 消息推送 订阅消息

百度正式开源转发引擎BFE,曾支撑春晚红包百亿流量_大前端_百度BFE引擎技术团队_InfoQ精选文章