# dian **Repository Path**: LJ070319/dian ## Basic Information - **Project Name**: dian - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-11 - **Last Updated**: 2026-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小蓝书互动社交平台 > 基于 Go + gRPC 微服务架构的社交内容平台 ## 项目简介 小蓝书是一个以生活方式分享为核心的社交平台,类似小红书。用户可以发布图文/视频笔记,分享购物心得、旅游攻略、美食探店等内容。 ## 技术栈 ### 后端 - **语言**: Go 1.21+ - **HTTP框架**: Gin - **RPC框架**: gRPC + Protobuf - **配置管理**: Viper - **数据库**: MySQL 8.0 + MongoDB 6.0 - **缓存**: Redis 7.0 + BigCache - **消息队列**: Kafka - **搜索引擎**: Elasticsearch 8.x - **日志**: Zap - **监控**: Prometheus + Grafana ### 前端 - **框架**: Vue3 + TypeScript - **构建工具**: Vite - **UI组件**: Element Plus - **状态管理**: Pinia ## 项目结构 ``` xiaolanshu/ ├── backend/ # 后端代码 │ ├── proto/ # Protobuf定义 │ ├── pkg/ # 公共包 │ │ ├── config/ # 配置管理 │ │ ├── database/ # 数据库连接 │ │ ├── redis/ # Redis客户端 │ │ ├── jwt/ # JWT认证 │ │ ├── logger/ # 日志工具 │ │ ├── middleware/ # 中间件 │ │ ├── snowflake/ # 雪花算法 │ │ ├── kafka/ # Kafka客户端 │ │ ├── es/ # Elasticsearch │ │ └── response/ # 统一响应 │ ├── services/ # 微服务 │ │ ├── user/ # 用户服务 │ │ ├── content/ # 内容服务 │ │ ├── audit/ # 审核服务 │ │ ├── social/ # 社交服务 │ │ ├── search/ # 搜索服务 │ │ ├── recommend/ # 推荐服务 │ │ └── notify/ # 通知服务 │ ├── gateway/ # API网关 │ ├── scripts/ # 脚本 │ └── deployments/ # 部署配置 ├── frontend/ # 前端代码 ├── docs/ # 文档 │ ├── 架构设计文档.md │ ├── 接口文档.md │ └── 数据库设计文档.md └── docker-compose.yml # Docker编排 ``` ## 快速开始 ### 1. 启动基础设施 ```bash docker-compose up -d ``` ### 2. 初始化数据库 数据库会自动初始化,SQL脚本位于 `backend/scripts/init.sql` ### 3. 运行后端服务 ```bash cd backend go mod download go run gateway/main.go ``` ### 4. 运行前端 ```bash cd frontend npm install npm run dev ``` ## 服务端口 | 服务 | 端口 | |------|------| | API Gateway | 8080 | | User Service | 9001 | | Content Service | 9002 | | Audit Service | 9003 | | Social Service | 9004 | | Search Service | 9005 | | Recommend Service | 9006 | | Notify Service | 9007 | | MySQL | 3306 | | MongoDB | 27017 | | Redis | 6379 | | Kafka | 9092 | | Elasticsearch | 9200 | | MinIO | 9000 | | Jaeger UI | 16686 | | Grafana | 3000 | | Prometheus | 9090 | ## 核心功能 ### 用户模块 - 手机号+验证码注册/登录 - JWT认证(C端7天/B端1天/O端8小时) - RBAC权限控制 - 积分等级体系 ### 内容模块 - 图文/视频笔记发布 - MySQL+MongoDB混合存储 - 雪花算法ID生成 - 版本管理与编辑锁 ### 审核模块 - AC自动机敏感词检测 - 阿里云内容安全API - 风险评分与自动决策 - 人工审核工作台 ### 社交模块 - 关注/取关(互关判断) - 点赞/收藏(Redis+MySQL双写) - 评论(楼中楼) - 私信(WebSocket推送) ### 搜索模块 - ES全文搜索 - IK中文分词 + 拼音分词 - 搜索建议 - 热搜榜 ### 推荐模块 - Feed流(推拉结合) - 多路召回(关注/热门/协同过滤/标签) - 综合排序 - 多样性过滤 ### 消息模块 - Kafka异步消费 - WebSocket实时推送 - Redis Pub/Sub跨实例 - 未读数管理 ## 性能优化 - 多级缓存(BigCache + Redis) - 布隆过滤器防穿透 - singleflight防击穿 - 随机过期防雪崩 - 连接池调优 - 慢查询优化 ## 文档 | 文档 | 说明 | |------|------| | [洋葱模型](洋葱模型.md) | 中间件链洋葱模型原理与实现 | | [日志格式规范](日志格式规范.md) | 企业级日志字段标准 | | [zap使用指南](zap使用指南.md) | zap 封装与调用方式 | | [限流设计](限流设计.md) | 令牌桶限流原理与实现 | | [分层架构](分层架构.md) | server → handler → service → repository 四层设计 | | [RESTful接口规范](RESTful接口规范.md) | 接口风格规范与本项目接口规划 | | [token分层设计](token分层设计.md) | pkg/jwt → token → middleware 三层 token 设计 | | [笔记审核模块联调记录](笔记审核模块联调记录.md) | logger/Kafka审核队列实现过程、三个联调问题及远程Kafka修复方案 | ## 工单对应 | 工单 | 对应模块 | |------|----------| | 01-需求拆解 | 项目规划、架构设计 | | 02-微服务框架搭建 | pkg公共包、中间件链 | | 03-用户认证模块 | user服务、JWT、RBAC | | 04-内容管理模块 | content服务、雪花算法 | | 05-内容审核模块 | audit服务、AC自动机 | | 06-社交互动模块 | social服务、Redis双写 | | 07-搜索服务模块 | search服务、ES | | 08-推荐服务模块 | recommend服务、Feed流 | | 09-消息通知模块 | notify服务、WebSocket | | 10-性能优化模块 | 多级缓存、布隆过滤器 | | 11-测试集成模块 | Docker部署、测试 | | 12-故障排查处理 | pprof、监控 | ## License MIT