「小游戏服务平台」ADR
Architecture Decision Record (ADR)
项目:小游戏服务平台(PlayNow) 版本:V1.0 日期:2025-09-26
1. 背景
小游戏服务平台需要构建一个 高并发、可扩展、跨端支持 的系统,支持 Web/H5、小程序、移动端 Hybrid,并满足 广告变现、开发者工具、AI 推荐、国际化 等复杂需求。
在架构设计阶段,团队需要确定后端语言、数据库、消息队列、推荐引擎、基础设施等关键选型,以便统一技术栈、降低运维复杂度。
2. 决策目标
- 高并发、低延迟,适应 百万级 DAU。
- 微服务化,支持模块快速扩展与独立部署。
- 跨云多区域部署,兼顾国内与海外市场。
- 可观测性强,支持实时监控、数据分析。
- 合规安全,满足 GDPR、未成年人保护、金融监管 要求。
3. 技术选型与决策
3.1 后端语言与框架
-
决策:Go 作为主语言,Rust 用于性能敏感模块,Java 用于后台管理/复杂业务。
-
理由:
- Go:高并发、生态成熟,适合网关与微服务核心。
- Rust:安全且极致性能,用于推荐/风控引擎。
- Java/Quarkus:企业级支持完善,适合后台管理系统。
3.2 数据库与存储
-
决策:MySQL + Redis 为主,PostgreSQL/ClickHouse/ES 做补充,OSS/S3 存储文件。
-
理由:
- MySQL:成熟稳定,适合交易型业务(用户、订单、收益)。
- Redis:高速缓存,适合排行榜、会话、热点数据。
- PostgreSQL:支持复杂查询,补充 MySQL 的局限。
- ClickHouse:高效分析日志与埋点数据。
- 对象存储 OSS/S3:存放游戏包、广告素材、截图。
3.3 消息队列
-
决策:Kafka + RabbitMQ 组合。
-
理由:
- Kafka:大规模埋点、广告竞价、实时日志。
- RabbitMQ:事务型消息、通知推送。
3.4 推荐与智能化
-
决策:TensorFlow Serving 部署核心推荐模型,Elastic ML 作为轻量热度推荐。
-
理由:
- TensorFlow:工业级部署能力,适合广告点击率预测、个性化推荐。
- Elastic ML:轻量快速,适合基础热度推荐与冷启动。
3.5 基础设施与运维
-
决策:Kubernetes + Istio 作为服务编排与治理,Prometheus/Grafana/ELK 作为监控与日志体系,GitHub Actions 作为 CI/CD。
-
理由:
- K8s:支持多云部署与弹性伸缩。
- Istio:流量治理、灰度发布、服务发现。
- Prometheus/Grafana:指标监控与告警。
- ELK:日志收集与查询。
- GitHub Actions:跨云 CI/CD,自动化发布。
4. 决策影响
积极影响
- 架构可扩展,满足百万级 DAU 与出海需求。
- 微服务解耦,方便快速迭代。
- AI 驱动推荐与风控,提升平台智能化。
- 技术栈标准化,降低学习与运维成本。
消极影响
- 需要多语言团队(Go + Rust + Java),增加人力成本。
- Kafka/ClickHouse 等大数据组件增加运维复杂度。
- 国际化部署涉及多云运维,成本较高。
5. 备选方案对比
技术领域 | 入选方案 | 备选方案 | 舍弃理由 |
---|---|---|---|
后端语言 | Go | Node.js | Node.js 性能瓶颈,生态更偏前端 |
数据库 | MySQL | Oracle | Oracle 授权费用高,生态封闭 |
消息队列 | Kafka | Pulsar | Pulsar 社区不够成熟,运维门槛高 |
推荐引擎 | TensorFlow | PyTorch | PyTorch 更适合科研,工业部署较弱 |
运维 | K8s + Istio | Docker Swarm | Swarm 功能弱,难以支撑复杂场景 |
6. 决策结论
采用 Go + Rust + Java 组合语言栈,MySQL + Redis + ClickHouse 数据方案,Kafka + RabbitMQ 消息体系,TensorFlow + Elastic ML 推荐系统,K8s + Istio 运维架构,确保平台的 性能、扩展性、智能化与合规性。