整体架构分为用户、视频、互动和社交四个核心服务。通过 Gateway 统一处理请求,服务间通过 Kitex RPC 框架通信,使用 etcd 进行服务发现。在视频服务方面,搜索视频有两个接口,一个是由elasticsearch实现的条件匹配搜索,另一个尝试实现了基于 OpenAI 的语义搜索功能,通过向量检索技术对视频内容进行深度理解和匹配。系统会自动提取视频元数据(标题、描述、标签等),生成向量表示并存储在向量数据库中,实现相似内容推荐,摘要总结,视频上传采用异步处理机制,通过 Kafka 消息队列处理视频封面生成、元数据提取等任务。为提升访问性能,系统使用 Redis 实现多级缓存策略,包括热门视频缓存、用户令牌缓存等,并通过 Redis Sorted Set 实现实时热门排行榜。社交功能采用 WebSocket 实现实时聊天,支持私聊和聊天室两种模式,消息持久化存储确保可靠性。用户认证使用 JWT 实现,并通过 Redis 进行分布式会话管理。数据存储方面,使用 MySQL 作为主数据库,通过 GORM 进行对象关系映射;使用 Elasticsearch 实现全文搜索;使用 Redis 进行缓存和实时数据处理。整个系统通过 Docker Compose 进行容器化部署,便于环境管理和扩展。在性能优化方面,我们实现了分服务的 Redis DB 隔离(用户服务 DB0、视频服务 DB1、社交服务 DB2),避免数据冲突。