Skip to main content

Module multi_app

Module multi_app 

Source
Expand description

多应用调度器模块 — MultiAppDispatcher

对齐 PHP auto_multi_app=true + app_map + domain_bind

§功能

  • MultiAppDispatcher:注册多个应用 Router,按路径前缀或域名分发
  • AppEntry:单个应用条目(name + Router + 可选 domain)

§PHP 对齐

PHP 配置项Rust 行为
auto_multi_apptrue启用多应用解析
app_mapoapc/admin/api/farm/oapi/cashier/scene路径前缀分发
domain_bind[]域名绑定(默认为空,可通过 register_with_domain 注册)
deny_app_list['common']拒绝访问 common(在 router 中处理)

§端口分配

PHP 项目端口分配:

应用端口
oapc8801
admin8802
api8803
cashier8804
scene8805

这些端口信息在 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
单个应用条目
MultiAppDispatcher
多应用调度器