Files
2026-03-01 01:43:46 +08:00

212 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
# Excalidraw Data
## Text Elements
网关路由配置表 gw_route_config
route_id 路由ID【自增ID】
route_name 路由名称【BBoss->IBS】
service_id 服务实例ID
remark 备注
priority 路由优先级,数字越小,优先级越高
enabled 是否启用,0-不启用,1-启用
create_by 创建者
create_time 创建时间
update_by 更新者
update_time 更新时间 ^c7xvUiQi
路由-Path配置表
id 主键ID
route_id 关联路由ID
path 路由路径【/api/v2/sync/BBOSS/BusiProvServ】 ^P9FXDBEV
路由-Method配置表
id 主键ID
route_id 路由ID
method HTTP方法,如GET、POST等【POST】 ^f1ZY9xkm
路由-Param配置表
id 主键ID
route_id 路由ID
param_name 参数名称【bbb】
param_value 参数值【333】 ^VxNAiyM5
网关服务实例表 gw_service_instance
service_id 服务实例ID
name 服务实例名称【portal-dev】
mode 转发模式,0-负载均衡,1-静态地址
lb_strategy 负载均衡策略,0-轮询,1-随机,2-权重
enabled 是否启用,0-不启用,1-启用 ^xdcujjqL
网关服务实例-uri表 gw_service_instance_uri
id 主键ID
service_id 服务实例ID
uri 转发地址【http://127.0.0.1:8080】
enabled 是否启用,0-不启用,1-启用
weight 权重 ^VChkbzrU
网关转发记录表 gw_forward_record
record_id 记录ID
uuid 请求UUID
request_time 请求时间
request_url 接口路径
method 请求方法
target_endpoint 目的地址
http_code 请求响应码
trace_id 链路追踪ID
gateway_endpoint 网关地址
route_id 请求匹配的路由ID
cost_time 请求耗时(ms) ^LCwLGcfx
网关转发记录详情表 gw_forward_record_detail
id 主键ID
record_id 记录ID
request_param 请求参数
request_body 请求body体
request_headers 请求头
response_body 响应body体
response_headers 响应头 ^sLaslqqr
网关实例表 gw_instance_info
id '主键ID'
ip '网关实例IP'
port '网关实例端口'
health_status '健康状态,0-异常,1-正常'
health_check_time '健康检查时间'
sync_status '配置同步状态,0-未同步,1-已同步'
sync_time '配置同步时间'
enabled '是否启用,0-不启用,1-启用' ^fwFXjySN
1. 删除时有路由绑定不能删除。
2. 修改时有路由绑定不能置为 false。 ^minCyIyW
1. 新增是必须有一个条 uri
2. 删除时必须留一条。
3. 至少有一条启用中(修改) ^Picbf8oN
1.pathmethod至少有一条(修改) ^Hxq7NGKt
%%
## Drawing
```compressed-json
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
```
%%