Appearance
数据服务 / 共享 / 统一
此场景需要使用的应用: 数据服务
通过以下 6 步完成数据 API 的创建发布共享, 以 Doris 中 example.dwd_power_unit_di 开放为 API 为例
创建 API 数据源
作为 API 的数据访问来源
- 数据服务 - 数据源管理 -
新增
- 创建 Doris 类型的数据源 DorisAPIExample
创建或者注册 API
首次创建需创建分类, 以分类 Example 为例
- 数据服务 - API 开发 -
新建分类 Example
创建 API - 向导模式
- 点击
分类 Example
-创建 API
- 填写基本信息
- 服务地址: 网关地址
- API 路径: 可自定义, 要求不重复
- 请求方式: 选择 POST
- API 类型: 选择公有, 公有为所有用户可见, 私有仅当前用户可见
- 填写参数配置
- 配置模式: 选择向导模式
- 来源: 选择数据源
- 表: 选择 dwd_power_unit_di
- 选择参数: 点击加载选择请求参数、返回参数、是否必填
- 字段排序: 字段排序点击添加设置字段升序
- 保存后点击发布可发布 API, 发布后才可访问 API
- 点击调试可测试 API 连通性、请求返回字段是否正确
创建 API - SQL 模式
- 点击
分类 Example
-创建 API
- 填写基本信息
- 服务地址: 网关地址
- API 路径: 可自定义, 要求不重复
- 请求方式: 选择 POST
- API 类型: 选择公有, 公有为所有用户可见, 私有仅当前用户可见
- 填写参数配置
- 配置模式: 选择
SQL 模式
- 数据源: 选择
DorisApiExample
- SQL 语句: 输入
example.dwd_power_unit_di
的数据查询语句, 支持多表关联、复杂查询、聚合函数、开窗函数等 - 选择参数: 点击
加载
选择请求参数、返回参数、是否必填 - 字段排序: 字段排序点击
添加
设置字段升序
- 配置模式: 选择
- 保存后点击发布可发布 API, 发布后才可访问 API
- 点击调试可测试 API 连通性、请求返回字段是否正确
注册 API
- 点击
分类 Example
-注册 API
- 填写基本信息
- 来源:
系统内部
或者第三方
, 此案例选择系统内部
- 服务地址: 网关地址
- API 路径: 可自定义, 要求不重复
- 请求方式:
GET
或POST
, 此案例选择POST
- API 类型: 此案例选择
公有
, 公有为所有用户可见, 私有仅当前用户可见
- 来源:
- 填写参数配置
- 填写字段列表
- 设置请求参数、返回参数、是否必填
- 保存后点击发布可发布 API, 发布后才可访问 API
- 点击调试可测试 API 连通性、请求返回字段是否正确
配置 API 策略
数据服务 - API 管理 - API 策略 - 点击 Example 分类
- 点击策略
限流配置
- 点击限流配置 -
配置
- 填写限流配置- 针对请求属性: 关闭针对请求属性开关, 指不针对请求属性进行限流,直接针对该 API 的所有请求进行流量控制; 开启针对请求属性开关, 指针对该 API 的某个请求属性进行限流,可以选择参数属性
- Client IP:请求端的 IP 地址
- Remote Host:请求端的 Host Header
- Header:根据指定的 HTTP Header 进行解析,匹配对应的 Header Key
- URL 参数:根据指定的 HTTP URL 参数进行解析,需要填写对应的参数名称
- 属性值匹配
- 精确:严格按照给定的匹配串来匹配值
- 子串:若请求属性值包含该子串则匹配成功,如子串匹配 ab,则 aba 和 cabc 都可以匹配,而 cba 则不能匹配
- 正则:按照给定的正则表达式匹配串来进行匹配
- 阈值类型
- QPS 阈值:应用或服务流量的 QPS 指标, 选择 QPS 后,还需设置 QPS 阈值和统计间隔(支持秒、分钟、小时、天 4 种维度)
- 流控方式
- 快速失败:当阈值类型为 QPS 时,被拦截的流量将快速失败, 即达到阈值时,立即拦截请求
- Brust Size: 当流控方式为快速失败时,可以额外设置一个 Burst Size,即针对突发请求额外允许的请求数目
- 匀速排队:当阈值类型为 QPS 时,被拦截的请求将匀速通过,允许排队等待
- 当流控方式为匀速排队时,需设置具体的超时时间,预计达到超时时间的请求会立即失败,而不会排队
- 例如,QPS 配置为 10,则代表请求每 100 ms 才能通过一个,多出的请求将排队等待通过, 超时时间代表最大排队时间,超出最大排队时间的请求将会直接被拒绝
- 匀速排队时,QPS不要超过1000(请求间隔 1 ms)
- 快速失败:当阈值类型为 QPS 时,被拦截的流量将快速失败, 即达到阈值时,立即拦截请求
- 流控方式
- 线程数:资源的并发线程数,即该资源正在执行的线程数 (开启针对请求属性开关后,暂时不支持线程数作为阈值类型)
- QPS 阈值:应用或服务流量的 QPS 指标, 选择 QPS 后,还需设置 QPS 阈值和统计间隔(支持秒、分钟、小时、天 4 种维度)
- 针对请求属性: 关闭针对请求属性开关, 指不针对请求属性进行限流,直接针对该 API 的所有请求进行流量控制; 开启针对请求属性开关, 指针对该 API 的某个请求属性进行限流,可以选择参数属性
- 下图案例为配置 QPS 阈值填写 1000,统计间隔选择秒,则代表每 10 秒对应的请求数目不超过 1000 个, 且流控方式为快速失败, Brust Size 为 100, 即每 10秒超出 1000 请求可额外允许请求 100 个, 多余的请求将失败
熔断配置
- 点击熔断配置 -
配置
- 填写熔断策略- 慢调用比例 (SLOW_REQUEST_RATIO): 例如调用第三方服务,但响应时间太慢,会影响当前接口,所以对其进行熔断操作。选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
- 最大 RT: 单位毫秒 (ms), 请求的响应时间大于该值则统计为慢调用, 例如设置为 1000 ms, 请求的响应时间超过 1000 ms 则判定为慢请求
- 比例阈值: 范围 [0.0, 1.0], 触发熔断的慢调用比例阈值, 代表 0% - 100%
- 熔断时长: 单位秒 (s), 设置熔断时长
- 最小请求数: 设置触发熔断的最小请求数目
- 统计时长: 单位毫秒 (ms), 设置单位统计窗口时长
- 异常比例 (ERROR_RATIO):例如第三方内容展示时,系统会出现异常,当异常比例较高时,可以对其进行熔断操作,以保证更好的用户体验。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断
- 比例阈值: 范围 [0.0, 1.0], 异常比率的阈值, 代表 0% - 100%
- 熔断时长: 单位秒 (s), 设置熔断时长
- 最小请求数: 设置触发熔断的最小请求数目
- 统计时长: 单位毫秒 (ms), 设置单位统计窗口时长
- 异常数 (ERROR_COUNT):当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断
- 异常数: 请求出现异常的数目
- 熔断时长: 单位秒 (s), 设置熔断时长
- 最小请求数: 设置触发熔断的最小请求数目
- 统计时长: 单位毫秒 (ms), 设置单位统计窗口时长
- 慢调用比例 (SLOW_REQUEST_RATIO): 例如调用第三方服务,但响应时间太慢,会影响当前接口,所以对其进行熔断操作。选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。
设置 API 授权
此步骤用于向用户或者用户组授权 API, 用户组内的用户看作一个整体共享同一个 API 授权 Key
新增用户或用户组
数据服务 - 用户管理
新增用户
- 点击
用户
-新增
- 手动创建: 用于创建平台外第三方的用户, 即此用户仅可以调用 API 而没有使用平台系统的权限
- 用户中心: 可以由整个平台系统内的用户中心的用户引用创建数据服务应用内的用户, 即此用户可调用 API 也可登录平台系统
新增用户组
- 点击
用户组
-新增
- 用户组成员: 可选单个或者多个用户, 组内用户看作一个整体
API 授权
数据服务 - API 管理
- 点击分类
Example
- 选择 API - 点击授权
- 授权类型: 用户、用户组
- 授权用户 / 授权用户组: 选择所要授权访问该 API 的用户 / 用户组
- 授权范围
- 请求参数: 选择该授权可以发送的请求参数
- 返回参数: 选择该授权可以发送的返回参数
- 有效期
- 固定时长
- 永久
测试 API
数据服务 - API 管理
- 点击
API 测试
- 选择对象
- 用户
- 用户组
- 测试对象: 选择测试的用户 / 用户组身份
- API 名称: 选择所要测试的 API, 该用户 / 用户组未被授权的 API 将被过滤掉不提供选择
- 选择对象
上线 API
数据服务 - API 管理
- 点击
API 策略
- 点击分类Example
- 选择 API - 点击上线
- API 上线后才可正式被访问, 若未上线即使授权了也无法调用
调用 API
需要使用 API Key 调用 API
- 点击应用数据服务
- 点击菜单用户管理
- 点击
用户或者用户组
,authKey
即为授权的 API Key - 点击菜单API 管理
- 点击
API 策略
, 选择 API,API 路径
即为 API 调用访问路径