【网关】互联网公司的接入网关和业务网关怎么设计
网关
网关基础知识
RGW全称 Red GateWay :小红书网关(网关英文:Gateway; 接入网关:Access Gateway)
网关(通用):Gateway
接入网关:API Gateway、Access Gateway
业务网关:Business Gateway
网关服务器:Gateway Server
网关设备:Gateway Device
1.2 GSLB & LB
下面简明阐述 LB 和 GSLB 的含义、区别及应用场景:
1. LB(负载均衡,Load Balancer)
含义
- LB 是 “Load Balancer” 的缩写,中文意思是负载均衡。
- 就是将用户的网络流量或请求合理分配到多台后端服务器,从而提升系统吞吐、保证高可用性、防止单点故障。
典型类型
- L4 LB(四层负载均衡):基于 TCP/UDP 层(如 LVS)
- L7 LB(七层负载均衡):基于 HTTP/HTTPS 层(如 Nginx、HAProxy)
应用场景
- 一个机房、一个数据中心中对业务服务器的流量分担
- 网站、API 接口、App 后端等本地流量调度
2. GSLB(全局服务器负载均衡,Global Server Load Balancing)
含义
- GSLB 是 “Global Server Load Balancing” 的缩写,中文通常叫全局负载均衡 或 全局服务器负载均衡。
- 是在不同地域、不同数据中心/机房,根据用户的地理位置、网络状况等,把流量智能分配到多个跨地域的业务节点/机房/云上资源。
主要作用
- 用户就近访问,减少延迟、提升体验
- 业务级容灾:主节点出故障可自动切换到其它区域节点
- 跨地区流量调度,例如 CDN、全球化应用部署
实现方式
- 常采用智能 DNS(解析时返回最佳节点的IP)
- 或通过“Anycast”/全局流量调度设备实现
应用场景
- 互联网公司在全国或全球多地部署服务(如 B 站、阿里、腾讯、Netflix)
- 灾备、多活、就近服务等需求
- 全球 CDN 和视频分发加速
3. 区别总结
项目 | LB | GSLB |
---|---|---|
全称 | Load Balancer | Global Server Load Balancer |
级别 | 一般针对单一机房/数据中心 | 跨多个机房/数据中心/地理区域 |
目标 | 服务器实例之间流量均衡 | 节点/机房/区域之间流量智能调度 |
技术 | TCP转发、反向代理等 | 智能DNS、Anycast、全局调度平台 |
主要场景 | 本地高可用/扩容 | 跨地域容灾、全球多点服务、就近接入 |
4. 总结
- LB:本地(单个机房或云区)的负载均衡,分发流量到多台后端服务器,提高可用性和扩展性。
- GSLB:跨地域/机房/云的流量调度,用户访问时根据地域、健康检测等分配到最优的数据中心,保障全球流量智能分发和业务连续性。
如需更深入的架构细节或实际产品选型(如 AWS ELB/GSLB、阿里云全局流量调度等)可补充说明。
二、网关设计
互联网公司的接入网关(API Gateway/Access Gateway)和业务网关(Business Gateway)在系统架构中担负着不同的职责,合理的设计对于高可用、高扩展、安全性至关重要。以下分别针对接入网关和业务网关的设计思路、常见功能、架构建议、实现要点进行说明。
一、接入网关(API Gateway/Access Gateway)
1. 定义和作用
- 定义:服务于所有客户端请求的统一入口,负责流量接入、协议转换、安全验证等。
- 作用:
- 屏蔽后端架构细节,对外提供统一API接口
- 统一安全校验(如认证、鉴权、IP黑白名单、流控)
- 动静态内容分发
- 负载均衡、限流、降级等
2. 设计要点
请求处理流程
Client -> [Access Gateway] -> [业务网关/后端服务]
常见功能
- 认证鉴权(如OAuth2/JWT/Session等)
- HTTPS接入与证书管理
- 流量控制与限流(如qps限制、用户维度容量保护)
- 日志采集与监控
- 熔断与降级
- 请求路由与API聚合
- 协议转换(如HTTP2、WebSocket)
- 安全防护(SQL注入、XSS、CC攻击防护)
- 动态配置、灰度发布、AB测试支持
架构建议
- 高可用分布式部署:通过反向代理(如Nginx、Envoy、Kong等)+ 服务实例自注册发现。
- 网关可扩展:支持自定义插件扩展,集成日志、监控、鉴权等模块。
- 支持横向扩展:无状态设计,通过LB分流。
- 管控台和配置中心:需配备可视化管理入口,动态管理路由、限流策略等。
示例架构
|--------------------|
| Client(Mobile,Web)|
|--------------------||--------------- [负载均衡]| Access GW |-----> 鉴权、认证、流控、日志...---------------|--------------- | 业务网关层 |-----> 各业务微服务---------------|---------------| 数据服务等 |---------------
二、业务网关(Biz Gateway)
1. 定义和作用
- 定义:处于接入网关与业务服务之间的中枢系统,聚合/编排多个后端微服务,为特定业务场景提供统一接口。
- 作用:
- 面向业务、协议、领域整合
- API聚合(组合调用多个后端服务)
- 灰度发布、服务编排
- 策略路由、服务适配(如A/B Test或根据不同条件路由到不同服务)
- 隐藏后端复杂性或服务拆分细节
2. 主要功能
- 业务API聚合和编排
- 二次鉴权、用户授权、业务日志补全
- 针对多版本/多租户的路由
- 业务容错、补偿、重试机制
- 域数据缓存(如用户画像、短时性业务数据缓存)
- 上下文传递与透传(TraceId、用户态)
3. 架构与设计要点
- 分层架构:解耦通用接入逻辑和封装业务逻辑
- 服务聚合/编排:如GraphQL、BFF(Backend For Frontend)模式
- 高内聚低耦合:可灵活拦截、改写、路由、容错
- 异步调用/并发聚合:为前端提供更快响应
- 可观测:埋点、指标、链路追踪
- 灰度、回滚支持:config中心驱动,动态切流
三、设计落地建议
1. 选型建议
- 接入网关:
- 业界主流可选Nginx、Kong、Envoy、APISIX
- 云原生可考虑Kubernetes Ingress Controller(如Istio、Traefik)
- 业务网关:
- 自研居多(因面向具体业务编排和策略强)
- GraphQL/BFF架构适合前端多端需求和API聚合
2. 典型設計模式
- 三层网关模式:负载均衡→接入网关→业务网关
- 多级限流与隔离: 在接入和业务网关分别限流,隔离影响范围
- 服务注册与发现: 可用Consul、Eureka等
3. 典型数据流
[用户请求] -> [负载均衡] -> [接入网关] -> [业务网关] -> [后端服务/微服务]
四、实际案例拓展
阿里/腾讯等互联网公司参考案例
- 接入网关:OPGateway、Tengine、APISIX等
- 业务网关:API聚合层(如淘宝的API Gateway有独立的「业务聚合网关」层)
- 高并发下机制:如分片限流、调度隔离、弹性扩容
五、总结
- 接入网关偏通用侧重安全和接入管控,业务网关侧重业务聚合与策略隔离编排
- 两者解耦,便于横向扩展、针对不同需求演进,保障架构稳定性与灵活性
如果需要参考具体的开源网关或业务编排解决方案,也可以给出更详细的案例或代码片段。