“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

百度万亿流量的转发引擎 BFE 开源了

  • 2019-11-24
  • 本文字数:1424 字

    阅读完需:约 5 分钟

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


有理由相信,从长期趋势看,基于更高级编程语言的软件系统会逐步取得竞争的优势。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 转发引擎的研发过程,秉承了百度优良的研发传统,经过了多年的技术积累。BFE 已经在百度稳定运行多年,并历经多次大流量的洗礼。以开源贡献社区,是百度技术价值体现的重要方式。希望能借 BFE 开源的机会,与各位同行切磋技术,共建网络接入领域的开源技术生态。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。


原文链接:


https://mp.weixin.qq.com/s/qIMh6sL76vcU4TUeTp965w


2019-11-24 23:311272

评论

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

6000 字干货详解:直播聊天室的无限用户优化

融云 RongCloud

高并发 直播 直播聊天室 海量用户

「猿桌派」即将开播,聚焦客户端埋点和大数据分析

融云 RongCloud

大数据 程序员 埋点

超市发:多措并举 提振销售 服务顾客

科技热闻

JAVA 开发常用工具汇总

编程江湖

java编程

升级过log4j,却还没搞懂log4j漏洞的本质?

华为云开发者联盟

Java log4j 漏洞 JNDI rmi

实用机器学习笔记二十:偏差和方差

打工人!

机器学习 深度学习 算法 学习笔记 12月日更

10 个打造 React.js App 的最佳 UI 框架

编程江湖

前端开发

Linux云计算好学吗?Linux云计算运维学习资料,手把手教你学 条件测试语句和流程控制语句的使用

学神来啦

Linux centos Shell if linux云计算

30个类手写Spring核心原理之动态数据源切换(8)

Tom弹架构

Java spring 源码

视频通信中的码率控制算法

拍乐云Pano

音视频 RTC 视频编码 码率控制

「Oracle」数据库字符集编码修改

恒生LIGHT云社区

数据库 oracle

DotNet工具箱之性能监控组件——CLRStats

为自己带盐

dotnet 28天写作 12月日更

酷炫3D效果在瘦设备上也能实现?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

2021数据技术嘉年华 | OceanBase 技术盛宴ON LINE ,我们不见不散!

OceanBase 数据库

数据库 OceanBase 社区版 技术嘉年华 DTC

一站式云安全保障,就用行云管家!完美保障!

行云管家

云计算 云安全 企业上云 云资源 云管理

在线JSON转Csharp工具

入门小站

工具

(转)大数据开发之Hive中UDTF函数

@零度

大数据 hive

Ajax+SSM实现客户端开发 实现简单的前后端分离

Bug终结者

Java ajax 前后端分离

从Hadoop框架讨论大数据生态

编程江湖

大数据 hadoop

【等保小知识】等保一级需要测评吗?

行云管家

网络安全 等保 等级保护 等保一级

腾讯云原生数据库TDSQL-C斩获2021 PostgreSQL中国最佳数据库产品奖

科技热闻

Apache APISIX 社区双周报 | 功能亮点更新进行中

API7.ai 技术团队

云原生 后端 开源社区 api 网关 Apache APISIX

化繁为简--百度智能小程序主数据架构实战总结

百度Geek说

小程序 百度 架构 后端 数据

Linux之more命令

入门小站

Linux

30个类手写Spring核心原理之自定义ORM(下)(7)

Tom弹架构

Java spring 源码

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析

洛神灬殇

RocketMQ 消息队列 Apache RocketMQ 12月日更

web技术分享| 白板SDK的几种图形检测算法

anyRTC开发者

前端 音视频 白板 web技术分享 图形检测算法

【MongoDB学习笔记】-使用 MongoDB 进行 CRUD 操作(上)

恒生LIGHT云社区

数据库 mongodb

给弟弟的信第19封|年轻人要注意养生

大菠萝

28天写作

从 Discord 看未来社交的「超级群」模式

融云 RongCloud

熟悉又陌生的白帽黑客组织OWASP

喀拉峻

黑客 网络安全 安全 OWASP

百度万亿流量的转发引擎BFE开源了_文化 & 方法_AIOps智能运维_InfoQ精选文章