--- 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.path,method至少有一条(修改) ^Hxq7NGKt %% ## Drawing ```compressed-json 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 ``` %%