Expand description
多应用调度器模块 — MultiAppDispatcher
对齐 PHP auto_multi_app=true + app_map + domain_bind。
§功能
MultiAppDispatcher:注册多个应用 Router,按路径前缀或域名分发AppEntry:单个应用条目(name + Router + 可选 domain)
§PHP 对齐
| PHP 配置项 | 值 | Rust 行为 |
|---|---|---|
auto_multi_app | true | 启用多应用解析 |
app_map | oapc/admin/api/farm/oapi/cashier/scene | 路径前缀分发 |
domain_bind | [] | 域名绑定(默认为空,可通过 register_with_domain 注册) |
deny_app_list | ['common'] | 拒绝访问 common(在 router 中处理) |
§端口分配
PHP 项目端口分配:
| 应用 | 端口 |
|---|---|
| oapc | 8801 |
| admin | 8802 |
| api | 8803 |
| cashier | 8804 |
| scene | 8805 |
这些端口信息在 config/app.yml 中维护,调度器本身不直接绑定端口,
而是由 server::serve() 在启动时使用。
§用法
ⓘ
use sz_rust_core::multi_app::MultiAppDispatcher;
let mut dispatcher = MultiAppDispatcher::new();
dispatcher.register("oapc", oapc_router);
dispatcher.register("admin", admin_router);
// 按路径查询应用
assert_eq!(dispatcher.dispatch_by_path("/oapc/customer/index"), Some("oapc"));
// 整合到主 Router
let main_router = dispatcher.build();Structs§
- AppEntry
- 单个应用条目
- Multi
AppDispatcher - 多应用调度器