Skip to content

Latest commit

 

History

History
35 lines (30 loc) · 1.62 KB

网关应该承担什么功能和能力.md

File metadata and controls

35 lines (30 loc) · 1.62 KB

网关是微服务的入口,所以有很多事情可以在网关做,网关也是所有流量的总入口。是最重要的基础服务。目前总结一下,我们的网关已经实现的功能和还没有实现的功能。

已经实现的功能

  • 网关健康检查逻辑
  • 根据版本号限制访问接口逻辑(接口最低支持的app版本号)
  • 内部接口访问保护逻辑(接口仅仅只暴露给内部服务)
  • 接口权限验证逻辑(接口仅仅只暴露给某些拥有身份的用户)
  • 参数完全透传,不做任何解析(针对第三方格式不统一的接口使用)
  • 维护功能逻辑(针对接口开启维护页面)
  • 解码客户端参数逻辑
  • 唯一请求traceid的接收或者生成
  • 修改请求参数逻辑
  • 用户唯一凭证解析用户id和身份逻辑(通过用户的ticket和确定算法,得到用户的基础信息)
  • 重复请求拒绝逻辑
  • 对外路径和对内路径转换映射逻辑(外部路径:内部路径 == N:1)
  • 记录用户请求真实ip逻辑
  • 访问日志记录逻辑
  • 内部接口审计记录逻辑
  • 前端跨域CORS的设置逻辑
  • 灰度流量请求分发逻辑
  • 接口性能监控和指标度量采集逻辑

未实现的功能

  • 接口和服务限流逻辑
  • 用户和设备禁用逻辑
  • 接口数据缓存逻辑
  • SSL认证逻辑

实现大体方法

  • 网关通过注册中心获取微服务实例
  • 微服务注册到注册中心,并且通过定时push元数据到注册中心
  • 网关定时从注册中心轮训的pull元数据,并且记录在内存中
  • 针对不同的请求,根据所配置的元数据来进行不同的策略