# Go 后端服务设计 (Backend Services in Go) ## 1. 服务拆分 (Service Split) - **gateway-api**:统一 REST API、鉴权、限流 - **data-ingest**:采集任务调度与执行 - **data-process**:清洗、标准化、OCR、消歧 - **search-service**:搜索索引构建与查询 - **analytics-service**:指标计算与报表查询 - **notification-service**:订阅与通知推送 - **admin-service**:数据源管理、质量监控、运营后台 ## 2. 推荐技术栈 - Web 框架:Gin 或 Echo - ORM:GORM 或 sqlx - 配置:Viper - 日志:Zap - 任务调度:cron/Temporal - 队列:Kafka/RabbitMQ - 缓存:Redis ## 3. 项目结构建议 ``` cmd/ gateway-api/ data-ingest/ data-process/ internal/ config/ middleware/ repository/ service/ handler/ model/ jobs/ utils/ api/ openapi.yaml ``` ## 4. 关键模块说明 - **Repository**:封装 DB 访问与分页/过滤 - **Service**:业务逻辑、规则、权限 - **Handler**:REST API 入口 - **Jobs**:采集/清洗/同步任务 ## 5. 数据库与索引 - 主库:项目/公告/组织/订阅 - 索引:全文检索字段、标签、地区与行业 - OLAP:聚合结果与分析视图 ## 6. 可靠性与扩展 - 所有服务接入集中日志与分布式追踪 - 关键数据流支持幂等与重试 - 采集链路支持失败熔断与任务降级