Soul 表结构梳理 主要介绍一次调用请求涉及到的表
整体表结构如下所示

请求涉及表结构梳理
plugin 表
字段 | 含义 |
---|
id | 主键ID |
name | 插件名称 |
config | 插件配置 json存储 在divide插件中没有数据存储,在dubbo插件中需配置注册中心地址,其它插件还需追踪 |
role | 插件角色 0系统插件 1自定义插件 |
enabled | 是否启用 1启用 0未启用 |
plugin_handle 表
字段 | 含义 |
---|
id | 主键ID |
plugin_id | 所属插件ID 多对一关系 |
field | 字段 |
label | 描述 |
data_type | 数据类型 1数字 2字符串 不太理解 |
type | 类型 1选择器 2规则 3插件 不太理解 |
sort | 排序 |
ext_obj | 其它数据 json存储 |
感觉这个表没啥在处理流程里没啥作用,就是提供一个展示作用??? 后续跟进一下
selector 表
字段 | 含义 |
---|
id | 主键ID |
plugin_id | 所属插件ID 多对一关系 |
name | 名称 |
match_mode | 匹配模式 0 代表or 1代表 and,在此处代表满足条件 |
type | 类型 取值 1代表full 指代代理整个 0代表custom 猜测代理条件下的 |
sort | 执行顺序 猜测当有多个选择器满足条件,有限执行sort值高的 |
handle | 存储json信息 在divide插件中存储负载均衡的机器节点,后续插件下对应选择器的handle存储持续跟踪 |
enabled | 是否启用 1启用 0未启用 |
loged | 是否记录日志 1记录 0未记录 |
continued | 是否记录后继选择器 1继续 0不继续(暂不明确具体含义) |
handle字段存储格式展示
[
{
"upstreamHost": "localhost",
"protocol": "http://",
"upstreamUrl": "127.0.0.1:8188",
"weight": 50,
"status": true,
"timestamp": "0",
"warmup": "0"
}
]
selector_condition 表
字段 | 含义 |
---|
id | 主键ID |
selector_id | 选择器ID 多对一 |
param_type | 参数类型 目前提供了post、uri、query、host、ip、header类型 下文会详细介绍 |
operator | 条件匹配的表达式 有match、=、regEx、like |
param_name | 有些类型需要填写post、uri、query、header |
param_value | 参数值 |
rule 表
字段 | 含义 |
---|
id | 主键ID |
selector_id | 选择器ID 多对一关系 |
match_mode | 匹配模式 0 代表or 1代表 and,在此处代表满足条件 |
name | 名称 |
type | 类型 取值 1代表full 指代代理整个 0代表custom 猜测代理条件下的 |
sort | 执行顺序 猜测当有多个选择器满足条件,有限执行sort值高的 |
handle | 存储json信息 在divide插件中指代负载策略及相关重试次数 具体json结构如下图所示 |
enabled | 是否启用 1启用 0未启用 |
loged | 是否记录日志 1记录 0未记录 |
handle字段存储格式展示 | |
{
"requestVolumeThreshold": "0",
"errorThresholdPercentage": "0",
"maxConcurrentRequests": "0",
"sleepWindowInMilliseconds": "0",
"loadBalance": "hash",
"timeout": 3000,
"retry": "3"
}
rule_condition 表
字段 | 含义 |
---|
id | 主键ID |
rule_id | 规则ID 多对一 |
param_type | 参数类型 目前提供了post、uri、query、host、ip、header类型 下文会详细介绍 |
operator | 条件匹配的表达式 有match、=、regEx、like |
param_name | 有些类型需要填写post、uri、query、header |
param_value | 参数值 |
关于handle字段的使用 详情见官方文档:dromara.org/zh-cn/docs/…