FA5# 网关拓扑结构与功能设计归纳

  • Post author:
  • Post category:其他


引言

本文就网关拓扑结构和常见功能与设计点归纳整理。

一、网络拓扑与流量走向

1.网络拓扑架构

下面是一个比较通用的南北流量网关部署架构,各个层次如下:

  • 终端服务层:公司提供的各种设备、APP等

  • 四层负载均衡集群:SLB/LVS等

  • 七层负载均衡集群:Nginx等,在这一层可以植入安全插件WAF等

  • 网关层:负责终端与内部服务通信协议转换、通知推送等

  • 后端服务:业务微服务应用

ea279c7aeccff9febb34e981fed2aece.png

2.流量走向


从北向南

  • 终端通过HTTP/TPC/WebSocket等协议发送请求,网关接受请求解析数据包

  • 解析数据包通常会使用秘钥或者秘钥池

  • 解密后组装数据格式抽取映射标识(指令码或者action)

  • 根据业务配置的映射关系通过标识查询对应的后端服务接口与协议

  • 向后端微服务发起调用


从南到北

  • 业务处理完逻辑后向网关发起回调

  • 网关先查找该请求的长连接在哪台网关机器上

  • 找到与终端的长连接将回调的内容完成推送

二、功能点归纳

下面罗列下网关常见功能点:

1.协议转换

  • 终端HTTP1.1、HTTP/2与后端服务HTTP、RPC、MQ等协议转换

  • 终端WebSocket与后端服务HTTP、RPC、MQ等协议转换

  • 终端TCP与后端服务HTTP、RPC、MQ等协议转换

  • 终端MQTT与后端服务HTTP、RPC、MQ等协议转换

2.访问控制

  • 用户身份认证

  • 风控风险验证

  • 签名合法验证

  • 黑白名单管理

3.流量控制

  • 全局流控对网关访问的总量控制

  • 单机流控根据APP访问API的权重控制

  • 多种流控维度API地域、API商户等

  • 断路器熔断慢调用服务

4.监控告警

  • 流量监控

  • 日志采集

  • 实时告警

5.网关管理

  • 服务接口配置

  • 负载均衡策略

  • 秘钥生成策略

6.性能相关

  • 缓存的使用 将频繁请求的数据进行缓存提高响应时间

  • 性能分析日志

7.流量路由

  • 灰度&蓝绿发布

  • A/B测试&测试场

  • 链路标记路由 头部打标透传以及节点选择

三、设计点归纳

秘钥设计

  • 静态密钥 固定密钥串

  • 动态密钥 设置过期时间,过期后重新获取密钥

  • 密钥池化 将众多密钥组成密钥池,对终端的数据包进行解密

插件设计

  • 热插拔

  • 易扩展

推送映射

后端服务通过网关向终端推送消息时,需要知道终端与网关哪台机器建立的长连接,通常两种方向:

  • 网关负责映射

    1.后端服务不需要关心具体哪台网关节点IP,由网关建立终端标识与网关长连接IP映射,比如 userId=1.2.3.4存储在Redis等 2.后端服务推送请求时,网关根据标识(例如:userId)找到终端与网关节点建立的长连接完成推送

  • 后端服务负责

    1.网关调用后端服务时将本节点IP透传给后端服务

    2.后端服务向网关发起请求时只将请求发送到该网关节点IP 2.1 例子:可以通过RocketMQ Tag的功能实现,后端服务发送消息将网关IP设置为主题的tag,网关使用集群消费模式,每个网关节点使用不同的消费组订阅该tag(自身IP为tag)

    2.2 例子:通过RPC通信框架节点选择回调时选择透传的网关节点IP




版权声明:本文为gaoliang1719原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。