Go开发企业级微服务网关(4)项目实战准备

目标:

  • 开发前准备
  • 后台管理功能
  • 实现多服务代理功能与租户接入功能

开发前准备

先整理出整体的功能点,再逐步细化实现

后台管理功能

  • 管理员:登陆、退出、修改密码
  • DashBoard 功能点:
    • 四维度指标
    • 全站流量统计(折线图)
    • 全站服务类型占比统计(饼图)
  • 租户管理
    • 租户列表
    • 租户信息的 CURD
    • 流量统计
  • 服务
    • 服务列表
    • HTTP 服务信息 CUR
    • TCP 服务信息 CUR
    • GRPC 服务信息 CUR
    • 流量统计
    • 服务删除

代理服务器功能点

  • HTTP 服务信息
    • 7层多策略负载
    • websocket
    • 请求超时控制
    • 限流
    • 白名单限制
    • 前置匹配
    • HTTPS
    • STRIP_URI
    • 重写URL
    • head头转换
  • TCP 服务信息
    • 4层多策略负载
    • 限流
    • 白名单限制
  • GRPC 服务信息
    • 7层多策略负载
    • 限流
    • 白名单限制
    • metadata 转换
  • 基于 JWT 的多租户接入功能
    • 支持 HTTP
    • GRPC 接入代理

功能点实现思考

后台管理功能

原则:不重复造轮子,选择适合的方案

  • 前端方面
    • 前端框架选择:vue-element-admin
    • 图标选择: echarts
  • 后端方面
    • 整理接口文档
    • SQL 数据表整理并创建
    • 后端框架选择:gin_scaffold
  • 前后端联调测试

代理服务器功能

原则:考虑到功能简单化容易理解

  • HTTP 服务、 TCP 服务、 GRPC 服务
    • 服务启动时从 DB 加载配置信息到内存中
    • 反向代理以中间件形式,注册到中间件最后一级(实现:多策略负载)
    • 功能均以中间件形式注册到服务器上,实现相应功能
  • 多租户功能
    • 独立 URL 获取 jwt 的 token 信息
    • jwt 中间件验证 token 信息

如何保证前端与后端开发不阻塞

  • 前端直接代理后端的 mock 接口做开发测试
  • 前端独立 mock 数据
  • 后端接口开发完毕替换相应 mock 接口即可

核心还是接口文档

发表评论