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/…