万亿级流量转发:BFE核心技术与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 BFE开源项目介绍

下面介绍 BFE开源项目的情况。首先介绍 BFE平台的模块组成,然后说明 BFE开源项目中所涉及的模块和功能。

1.3.1 BFE平台的模块组成

BFE平台是由很多模块构成的一个比较复杂的分布式系统,可以分为数据平面和控制平面,以及一些相关依赖模块,如图1.4所示。

图1.4 BFE平台的模块组成

数据平面的主要模块包括以下两部分。

(1)转发引擎 BFE:提供流量的基础转发功能。

(2)日志单机模块(Reader):负责在单个节点上对转发日志进行处理。

控制平面的主要模块包括以下几部分。

(1)日志分析模块(Log Analyzer):在日志单机模块的基础上,对日志数据进行集群化集中处理。

(2)配置中心(Config Center):集中管理 BFE的转发配置。

(3)管理控制台(Console):供人员管理配置,查看平台状态。

和转发相关的依赖模块包括以下几部分。

(1)加解密模块(Crypto):可以对 HTTPS处理中的部分高消耗计算提供远程服务,从而降低对 CPU资源的消耗。

(2)缓存模块(Cache):提供转发所需要的缓存功能,如对 HTTPS中所使用的会话缓存(Session Cache)。

(3)应用层防火墙(WAF):提供对恶意请求进行检查的功能。

1.3.2 BFE开源项目中的内容

目前 BFE开源项目中的内容为 BFE平台中的转发引擎,包括核心框架和大部分的功能,具体功能包括以下几部分。

(1)主流接入协议的支持,包括 HTTP、HTTPS、SPDY(Google开发的基于传输控制协议的应用层协议)、HTTP/2、Web Socket和 TLS(Transport Layer Security,传输层安全)。

(2)灵活的模块框架。BFE开源项目中已经包含了很多扩展模块,也支持开发第三方扩展模块。

(3)基于请求内容的路由。该项目提供 BFE专有的“条件表达式(Condition Expression)”能力,可以灵活地定制转发规则。

(4)多种负载均衡策略。该项目支持“集群—子集群—实例”的多层级负载均衡能力,可以支持多机房、集群粒度的负载均衡,并支持过载保护。

(5)丰富的监控探针。在 BFE中内置了丰富详尽的监控指标,配合第三方监控系统(如 Zabbix、Prometheus)可以充分掌握系统的状态。

以上这些内容,将在后面的章节中做详细介绍。