1. 项目背景与需求分析
最近几年,我发现身边越来越多人开始重视体育锻炼,但选择运动场馆却成了个头疼事。上周我朋友小李想打羽毛球,花了半小时在各种APP上比价、看评价,最后还是选了个不太满意的场地。这种场景太常见了——用户找不到合适的场馆,场馆也苦于无法精准触达目标客户。这正是我决定开发这个运动场馆推荐系统的初衷。
传统平台主要靠距离和价格筛选,但真正影响用户体验的往往是场馆设施、人流量、地板材质这些细节。我们团队调研了本地30家运动场馆和200名用户,发现83%的用户会因"推荐不准"而放弃使用某个平台。这个系统要解决的核心问题就是:如何基于用户历史行为,预测其可能喜欢的场馆。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构设计
系统采用典型的三层架构,但在数据流设计上做了创新:
code复制用户端(Web/App) → API网关 → [推荐服务] → 业务服务 → 数据层
↑ ↓
实时行为采集 ← 消息队列
关键设计点:
- 推荐服务独立部署,与核心业务解耦
- 用户行为通过Kafka实时传输,避免直接写库压力
- 采用混合推荐策略解决冷启动问题
2.2 技术栈选型
为什么选择SpringBoot?
- 快速集成Redis、Kafka等中间件
- 内置Tomcat简化部署
- 与SpringCloud生态无缝衔接
- 自动配置减少样板代码
数据库对比选型:
| 需求 | MySQL | PostgreSQL | 最终选择 |
|---|---|---|---|
| 事务支持 | 完善 | 完善 | PostgreSQL |
| GIS功能 | 基础 | 强大 | PostgreSQL |
| JSON支持 | 5.7+支持 | 原生支持 | PostgreSQL |
