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 一键部署。