BFE

应用层负载均衡引擎
授权协议 Apache
开发语言 Google Go
所属分类 服务器软件、 集群/负载均衡
软件类型 开源软件
地区 国产
投 递 者 端木涵润
操作系统 跨平台
开源组织 百度
适用人群 未知
 软件概览

BFE是基于百度统一接入前端(Baidu FrontEnd)开源的现代化七层流量接入系统。

功能特性及优点

  • 基于Golang构建

基于内存安全语言构建无缓冲区溢出安全漏洞隐患;具备异常捕获容错处理能力避免进程异常退出;兼容支持Linux/Windows/MacOS等多平台运行。

  • 灵活的模块框架

内置灵活的模块框架,支持高效率定制开发第三方扩展模块。

  • 面向多租户架构

基于多租户架构设计,租户之间配置相互隔离。

  • 支持丰富的接入协议

支持HTTP,HTTPS,SPDY,HTTP/2,WebSocket,TLS等。未来计划支持gRPC, HTTP/3。

  • 基于请求内容路由

支持高级条件表达式定制转发规则,转发规则易于理解及维护。

  • 高级负载均衡

支持全局/分布式负载均衡,实现就近访问、跨可用区容灾及过载保护等。

  • 丰富的扩展模块

提供丰富的流量管理、安全防攻击、可见性等相关扩展模块。

  • 一流的可见性

提供丰富详尽的监控指标;提供各类日志(服务日志/访问日志/TLS Key日志)供问题诊断、数据分析及可视化;BFE还支持请求分布式Tracing。

  • 兼容适配主流生态项目

兼容适配主流四层负载均衡方案,及其它生态项目如Kubernetes、Prometheus、Jaeger、Fluentd等。

系统架构说明

下图展示了BFE的架构及BFE生态中的一些依赖系统。

BFE包含了多个组件,部分是可选的:

  • BFE Server: BFE数据平面核心转发模块

  • BFE-Reader: BFE日志分析模块,与BFE Server部署在一起,用于对BFE日志进行本地汇聚计算,降低后续计算处理的数据规模。

  • BFE-API Server: BFE控制平面API Server,其它控制平面模块以BFE-API Server为核心协同工作。

  • BFE-Aggregator: BFE日志数据实时聚合计算模块。

  • BFE-Scheduler: BFE流量调度器,基于流量、容量、网络距离及质量,自动计算全局负载均衡(GSLB)策略。

  • BFE-Controller: BFE集群控制器,执行常规控制任务,例如异常巡检及报警。

  • BFE-Web UI: BFE Web控制台。

  • 其它周边依赖系统, 例如缓存服务、非对称密码学算法计算服务等。

更多详细信息参见项目网站 https://www.bfe-networks.net/zh_cn/

  • 我原先以为我的js虽然学的不算好,但也绝对还行。直到我在这个题库里写了两道题。。。 怎么说呢,这个题库里的题是真的好,可以让我们以刷题的方式掌握很多js平时注意不到的知识点,下面是我这段时间刷题的经历,这篇博客只是为了记录一下学习经历,绝对不是为了国庆勋章水博客,嗯,绝对不是。  题库链接JavaScript quizzes | BFE.dev - prepare for Front-End jo

 相关资料
  • 负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。 负载均衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有

  • 负载均衡包括负载均衡实例、访问控制及证书。 实例 负载均衡实例是一个运行的负载均衡服务,通过设置的虚拟IP接收流量并将其转发分配给后端服务器。 访问控制 访问控制用于设置访问负载均衡的IP白名单或IP黑名单。 证书 当在负载均衡实例上配置HTTPS监听转发来自HTTPS协议的请求时,需要配置证书。

  • 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003; : }

  • SOFARPC 提供多种负载均衡算法,目前支持以下五种: 类型 名称 描述 random 随机算法 默认负载均衡算法。 localPref 本地优先算法 优先发现是否本机发布了该服务,如果没有再采用随机算法。 roundRobin 轮询算法 方法级别的轮询,各个方法间各自轮询,互不影响。 consistentHash 一致性hash算法 同样的方法级别的请求会路由到同样的节点。 weightRou

  • 本节将会讨论常见的分布式系统负载均衡手段。 6.5.1 常见的负载均衡思路 如果我们不考虑均衡的话,现在有n个服务节点,我们完成业务流程实际上只需要从这n个中挑出其中的一个。有几种思路: 按顺序挑: 例如上次选了第一台,那么这次就选第二台,下次第三台,如果已经到了最后一台,那么下一次从第一台开始。这种情况下我们可以把服务节点信息都存储在数组中,每次请求完成下游之后,将一个索引后移即可。在移到尽头时

  • 当过滤器需要获取到上游群集中的主机连接时,群集管理器使用负载平衡策略来确定选择哪个主机。负载平衡策略是可插入的,并且在配置中以每个上游集群为单位进行指定。请注意,如果没有为群集配置积极的健康检查策略,则所有上游群集成员都被视为健康。 支持的负载平衡策略 轮训 这是一个简单的策略,每个健康的上游主机按循环顺序选择。 权重最小请求 请求最少的负载均衡器使用O(1)算法来选择两个随机的健康主机,并选择活

  • 线上环境是阿里云,既然阿里云有SLB,比自己运维一个要省事儿的多,事实上,自己做也真不一定做得比它好,本节试图以haproxy来解释一下slb的原理 讲解haproxy的目的是介绍负载算法,便于理解SLB 目前比较流行的 目前,在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LVS,Nginx及HAProxy,高可用软件有Heartbeat. Keepalived 成熟的架构有 L

  • 1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中,一般很难接触到硬件负载均衡。但软件负载均衡还