中期规划
模块跨语言支持(模块注册 + 路由分发)
目标
- 模块注册:仅存储模块的元信息与模块调用参数定义,不强绑定实现语言
- 统一入口:由 Laravel 路由作为统一分发层,将请求转发到不同编程语言实现的服务 URL
- 扩展性:同一模块可有多个语言实现(或多个实例),支持灰度/AB/多环境
模块注册信息(建议最小集)
- 模块元信息
- 模块标识:
module_key - 模块名称/描述:
name/description - 版本:
version - 标签/分类:
tags - 负责人/维护信息:
owner/contact
- 模块标识:
- 调用参数
- 入参 schema:字段、类型、是否必填、默认值、校验规则
- 出参 schema:标准结构(成功/失败)、错误码约定
- 认证方式:如 API Key / JWT / 内网鉴权等
- 路由分发配置
- 目标语言/服务标识:
runtime(php/node/python/go/java…) - 目标 URL:
target_url - 超时/重试/熔断:
timeout_ms/retry/circuit_breaker - 负载策略:轮询/权重/就近等(可选)
- 目标语言/服务标识:
请求链路(建议)
- 客户端调用统一接口(Laravel Controller / API)
- Laravel 校验请求参数(基于模块注册的 schema)
- Laravel 路由分发:根据
module_key找到target_url - Laravel 作为网关转发请求到对应语言服务 URL
- 语言服务执行业务逻辑并返回统一格式响应
- Laravel 做响应整形/错误映射/日志审计后返回给客户端
关键约定(建议)
- 统一协议:HTTP/JSON 优先(后续可扩展 gRPC)
- 统一错误码:跨语言一致的错误码与错误结构
- 可观测性:全链路 traceId、请求日志、指标(耗时/错误率)
- 安全:服务间鉴权、签名/时间戳、防重放;敏感参数脱敏
