Skip to content

本地运行

单体启动

单体进程一次装配四个模块,适合本地开发与小规模部署:

bash
go run ./cmd/standalone      # 监听 :8080

启动后接口直接以模块前缀暴露:

  • 登录:POST http://localhost:8080/auth/login
  • 图形验证码:GET http://localhost:8080/auth/code
  • 系统管理:http://localhost:8080/system/...(如 /system/user/system/role
  • 对象存储 / 推送:http://localhost:8080/resource/...(推送端点 /resource/message
  • 监控:http://localhost:8080/monitor/...
  • 活性探针:GET http://localhost:8080/system/ping(免鉴权,不碰 DB/Redis)

多模块启动

每个模块编译成独立 binary、独立进程。 各模块统一监听 :8080(为容器化对齐,靠网络命名空间隔离端口),本机同时起多个需临时改 configs/<module>.yamladdr,否则抢端口:

bash
go run ./cmd/modular/system    # :8080 → /system/*、/ping
go run ./cmd/modular/auth      # 改成 :8081 → /auth/*、/ping
go run ./cmd/modular/monitor    # 改成 :8082 → /monitor/*、/ping
go run ./cmd/modular/resource  # 改成 :8083 → /resource/*、/ping

modular 进程路由以 空前缀注册,探针统一为 GET /ping。生产环境由 nginx 按路径前缀分流并剥前缀(对齐 Java gateway StripPrefix=1),前端始终打 /auth/system/resource/monitor 前缀路径。

探针

部署探针路径响应
standaloneGET /system/ping{"module":"system","message":"pong"}
modularGET /ping{"module":"<模块名>","message":"pong"}

所有探针均免鉴权、不碰 DB/Redis,适合做健康检查。accesslogskipPaths 可配 ping 这类高频零信息请求不打日志。

两种部署形态对比

维度standalone(单体)modular(微服务)
进程数一个进程,in-process四个进程
前缀策略进程内自带 /resource 前缀(等价于网关 StripPrefix=1 后的效果);保留 /auth/system/monitor 前缀空前缀注册,/resource 由 nginx 剥离后匹配裸路径
推送路径/resource/message(直连)/message(nginx 剥 /resource 后匹配)
前端统一打两种部署都打 /resource/message
端口:8080(独占)各模块统一 :8080(容器间网络命名空间隔离,本机调试需临时改)

详见 架构总览进程入口与初始化顺序

基于 MIT 协议开源