413 字
2 分钟
Go 中台 + MySQL:多数据源比分链路是这样搭的
数据链路总览
API-FOOTBALL + Euro365 + BSD -> Go API 定时同步、赛事去重、按需补详情 -> MySQL -> /api/v1/* -> React 前端核心原则只有一条:Token 只在服务端,浏览器永远碰不到上游密钥。前端要数据,一律走 /api/v1/*。
定时同步:首页只读库
Go 服务默认每 120 秒把当天赛程同步进 MySQL。首页翻页直接读库,每页 150 场,状态筛选、分组统计、优先级排序、LIMIT/OFFSET 全在 SQL 里做完。
切换到还没同步过的日期时,中台只在首次访问时向上游补一次数,之后翻页全走库——即使当天没比赛,也不会重复打上游,省配额又快。
多源合并去重
- Euro365 的直播、赛前、比分数据进来后,和 API-FOOTBALL 重复的比赛按开赛时间 + 双方球队合并,Euro365 独有的比赛用独立 ID 保存。
- BSD(Bzzoiro Sports Data)走独立 Tab,按天拉原始赛事,前后日期可浏览。
- 详情页的事件、阵容、技术统计、球员数据,由中台按需向上游补充,不预全量拉。
翻译:词典打底,人工说了算
中文译名存在 football_translations 表:批量词典先铺底,后台人工修正直接覆盖。运营改名不需要后端发版,前端实时生效。
我的后端技能点
- Go:定时任务、HTTP 中台、数据转换与合并
- MySQL 8.4:表结构设计、分页与筛选下沉、翻译表
- 数据意识:去重策略、补数节流、配额保护
前端 + 中台都有了,还差上线。下一篇聊 Docker Compose 一键部署。