美文网首页
APIGateway设计文档

APIGateway设计文档

作者: 加大装益达 | 来源:发表于2020-08-07 22:15 被阅读0次

APIGateway的设计文档,包括整体架构和数据库设计。

整体架构

使用draw io画的图,这里是源文件:APIGateway整体架构

APIGateway整体架构.png
  • 调用方,手机端、接入方等等一系列调用方

  • LVS负载均衡

  • Nginx反向代理

  • APIGateway

    • 流控,控制流量,针对同一个ip在指定的时间段内访问次数做限制

    • 验签解密,校验参数、验证签名信息、将加密的信息解密

    • 接口验证,验证接口是否存在、接口信息是否是当前调用者的接口

    • 接口权限验证,ip黑名单校验、调用的ip是否在白名单内

    • 业务参数验证,校验业务接口参数是否正确

    • 调用业务接口,可以使用dubbo泛化调用

    • 熔断降级,业务方接口不可用的时候或者业务方处理速度变慢,考虑进行熔断降级

    • 加密返回,将调用结果封装、加密、返回

  • 注册中心,dubbo服务注册到注册中心zookeeper

  • 业务服务,各个业务提供的dubbo服务,服务注册到注册中心

  • 存储

    • 本地缓存

    • 分布式缓存

    • MySQL

数据库设计

  • agw_api,接口信息

  • agw_api_param,接口对应的参数信息

  • agw_sys,接口所属业务系统

  • agw_out,外部调用方

  • agw_out_api,外部调用方拥有的api

  • agw_out_ip,外部调用方的白名单配置

  • agw_black_ip,黑名单ip

使用draw io画的图,这里是源文件:APIGateway数据库设计

APIGateway数据库设计.png

agw_api

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
code varchar(255) N api唯一标识
name varchar(255) N api接口名
method varchar(255) N api方法名
alias varchar() Y api方法别名
sys_id bigint(20) N 所属业务系统id
timeout int(6) N 1000 超时时间,毫秒

agw_api_param

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
api_id varchar(255) N api id
name varchar(255) N 参数名
type varchar(255) N 参数类型
sequence smallint(6) N 参数顺序

agw_sys

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
name varchar(255) N 业务系统名
desc varchar(255) N 业务系统描述

agw_out

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
name varchar(255) N 外部系统名
desc varchar(255) N 外部系统描述
code varchar(255) N 外部系统唯一标识
ip_control tinyint(4) Y 0 是否白名单控制 0-否 1-是

agw_out_api

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
out_id bigint(20) N 外部系统id
api_id bigint(20) N api id

agw_out_ip

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
out_id bigint(20) N 外部系统id
ip varchar(255) N 外部系统白名单

agw_black_ip

名称 类型 是否为空 索引 默认值 备注
id bigint(20) N PRIMARY 主键ID
created_time datetime N 创建时间
modified_time datetime N 修改时间
version smallint(6) N 版本号
out_id bigint(20) Y 外部系统id
ip varchar(255) N 黑名单ip

源码:https://github.com/dachengxi/APIGateway
原文链接:https://cxis.me/2020/04/07/APIGateway%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3/

相关文章

  • APIGateway设计文档

    APIGateway的设计文档,包括整体架构和数据库设计。 整体架构 使用draw io画的图,这里是源文件:AP...

  • APIGateway总结

    用了几天时间来设计和实现一个APIGateway,这里进行一下文档和代码的汇总。 文档汇总: APIGateway...

  • APIGateway设计的思路

    简述一下APIGateway的设计思路,准备从头写一个网关。 API网关的职能 请求接入,承接所有外部请求。 中介...

  • APIGateway

    概念介绍 APIGateway是微服务对外提供服务的一个屏障,它的核心点在于: 屏蔽微服务之间通过消息队列、rpc...

  • APIGateway简介

    1. APIGateway是什么 APIGateway 即API网关,所有请求首先会经过这个网关,然后到达后端服务...

  • 集中网关系列

    APIGateway 在学习 APIGateway 之前,首先应该清楚一些我们经常谈论或者平时使用的技术概念 1....

  • APIGateway中责任链模式的使用

    重新看一下责任链模式,在APIGateway设计中要用到责任链模式。简单写了代码测试下Spring中使用以及Apa...

  • 打卡第二天

    技术开发文档 软件概要设计文档 软件详细设计文档 数据库设计文档 用户使用手册文档 信息结构设计 多任务时间节点规...

  • 设计文档该写些什么

    在软件的文档中,有需求文档,设计文档(可能还分概要和详细设计),测试设计等等诸多文档。它们各有各的用途,本文就探讨...

  • 设计文档

    DebugHelp输出输出格式统一为:[时间][信息类型][关键字][信息内容][文件(行数)]其中时间是自动添加...

网友评论

      本文标题:APIGateway设计文档

      本文链接:https://www.haomeiwen.com/subject/ekoqdktx.html