gozerosandCursor bd427b57a1 feat: 换到 Gin 主流栈并补齐运维能力
HTTP 用 Gin,配置用 Viper,日志用 zap,数据用 sqlx;保留原有接口与会商行为。
顺带补上就绪探活、请求号、滚动日志、systemd 与 Dockerfile。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-04 09:51:41 +08:00

eightbf-analysis-go

8BF「多岗位会商」后台服务的 Go 实现,行为对齐 Java 仓 eightbf-analysis 与
docs/服务端开发设计要求.md。

  • 同一套 HTTP:/api/v1/analysis/...
  • 同一张表:eba_analysis_job(schema.sql)
  • 同一套环境变量:EBA_DB_* / EBA_DF_*(Go 另支持 EBA_DB_DSN)
  • 前端可经 Nginx /analysis-api 指向本进程(默认仍 :18097,勿与 Java 实例同时占端口)

与 Java 的关系

Java Go(本仓)
定位 现网/本机主用 同构移植,便于无 JVM 环境部署
API 权威契约 兼容同一契约
表结构 schema.sql 共用同一 schema

两进程不要同时写同一库抢同一 queued(尚无领取互斥)。切换时停掉一侧再起另一侧。

运行

# 需要 Go 1.21+、MySQL(库 eightbf_analysis)
export EBA_DB_USER=eba
export EBA_DB_PASSWORD=eba_local_dev
# 或直接:
# export EBA_DB_DSN='eba:eba_local_dev@tcp(127.0.0.1:3306)/eightbf_analysis?parseTime=true&loc=Asia%2FShanghai&charset=utf8mb4'

export EBA_DF_BASE_URL=http://127.0.0.1:8001
export ANALYSIS_MODE=live          # demo 则假进度
# export ANALYSIS_AUTH_ENABLED=true

cd /project/eightbf-analysis-go
go run ./cmd/server
# 默认 :18097

构建:

go build -o bin/eightbf-analysis-go ./cmd/server
./bin/eightbf-analysis-go

接口(与 Java 一致)

  • GET /api/v1/analysis/health — 存活
  • GET /api/v1/analysis/ready — 就绪(含 MySQL ping,失败 503)
  • POST /api/v1/analysis/jobs
  • GET /api/v1/analysis/jobs/{id}
  • GET /api/v1/analysis/jobs?taskId=&latest=
  • POST /api/v1/analysis/jobs/{id}/cancel|resume|plan|inject
  • GET /api/v1/analysis/jobs/{id}/result

身份头:X-Account-Id、X-Analysis-Role。响应头带回 X-Request-Id。

目录

cmd/server          入口(优雅停机)
internal/api        Gin 路由 + 审计日志 + 中间件
internal/logging    zap / 滚动文件
internal/service    编排 / 鉴权投影 / DemoWorker
internal/worker     LiveWorker / LiveChainRunner / 提示词
internal/deerflow   登录、SSE、模型校验
internal/repo       sqlx + MySQL
internal/domain     作业实体与状态常量
internal/config     Viper 读环境变量 + 启动校验
deploy/             systemd unit
docs/               设计要求、运维、env.sample
Dockerfile

日志与运维

见 docs/运维.md。要点:

  • LOG_LEVEL / LOG_FILE(滚动,默认保留 14 天)
  • 写操作 INFO 审计:jobId / accountId / reqId
  • EBA_STRICT_CONFIG=true 禁止 live 默认弱口令启动
  • SIGTERM 优雅停机;systemd 见 deploy/eightbf-analysis-go.service
S
Description
8BF 多岗位会商后台服务(Go,对齐 eightbf-analysis)
Readme
155 KiB
0 Stars 1 Watchers 0 Forks
Languages
Go 98.4%
Shell 0.9%
Dockerfile 0.7%