- 一:嘉宾模块:嘉宾推荐、嘉宾打招呼,历史回看,我喜欢的等
- 二:动态模块:动态发布、评论、点赞、举报、话题等
- 三:认证模块:实名认证、学历认证、工作认证
- 四:聊天模块:好友、聊天、礼物赠送等im功能
- 五:配置模块:各种配置
- 六:用户模块:登陆、注册、会员等
- 七:花瓣模块:花瓣充值、解锁嘉宾等
- 八:漂流瓶:捡一个,捞一个,漂流瓶会话等
- 九:签到任务:每日签到、新手任务、日常任务、奖励发放等
- 十:线下活动:活动发布、活动报名、活动退款等
- 十一:账户提现:用户账户、账户提现、花瓣兑换等
- 十二:app网关:接口数据加解密等
- 十三:其他等
项目采用分模块开发方式
- linfeng-love-app 移动端API模块(H5+uni-app端的API)
- linfeng-love-common 公共模块
- linfeng-love-gateway 网关模块(硬件资源充足的情况可以单独拎出来部署在互联网区)
- linfeng-love-parent 父模块(管理maven依赖)
- linfeng-love-push 消息推送模块(mq消息消费者,websocket消息推送,用户量大考虑拆成子系统部署,本系统是集成在app应用下)
- linfeng-love-push-client 消息推送客户端(提供消息推送Api,mq消息生产者)
- linfeng-love-service 服务模块(dao层数据处理以及缓存数据处理)
- linfeng-love-sys 后端管理API模块
- linfeng-love-transport 第三方服务模块
-
1 后端使用技术
- 1.1 SpringBoot2
- 1.2 mybatis、MyBatis-Plus
- 1.3 SpringSecurity
- 1.4 RabbitMQ
- 1.5 Netty
- 1.6 WebSocket
- 1.7 Mysql
- 1.9 Redis
- 1.10 JWT
- 1.11 Druid
- 1.12 Slf4j
- 1.14 Fastjson
- 1.14 Quartz
- 1.15 swagger
- 1.16 WxJava
- 1.17 Lombok
- 1.18 Hutool
- 1.19 dozer
- 1.20 aes
- 1.21 minio
-
前端使用技术
- 2.1 Vue3 全家桶
- 2.2 Element-ui
- 2.3 uni-app
当前仓库已经补齐 linfeng-love-app 的 Docker 运行配置,docker compose 会同时拉起以下服务:
- MySQL 8
- Redis 7
- RabbitMQ 3(含管理台)
- MinIO
- linfeng-love-app(uniapp/H5接口)
- linfeng-love-sys(后台管理接口)
在 linfeng-love-backend 目录执行:
docker compose up --build -d首次启动时会自动导入根目录下的 sql/linfeng-love-all.sql。
补充婚介/人工牵线服务套餐和权益种子数据:
mysql --default-character-set=utf8mb4 -u你的账号 -p 你的数据库名 < sql/seed-matchmaker-service.sql补充单身用户会员套餐和权益种子数据:
mysql --default-character-set=utf8mb4 -u你的账号 -p 你的数据库名 < sql/seed-member-service.sql默认访问端口:
- App API:
http://localhost:8080 - Netty:
http://localhost:8081 - Sys API:
http://localhost:8082 - Swagger:
http://localhost:8080/doc.html - Sys Swagger:
http://localhost:8082/doc.html - Druid:
http://localhost:8080/druid - Sys Druid:
http://localhost:8082/druid - RabbitMQ管理台:
http://localhost:15672 - MinIO控制台:
http://localhost:9001
停止服务:
docker compose down如需重置数据库和中间件数据,可删除根目录 data 目录后重新启动。
如果你希望在容器里开发后端,并在修改 Java、XML、YAML、pom.xml 后自动重启 linfeng-love-app,使用开发模式:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build开发模式说明:
- 仍然复用 MySQL、Redis、RabbitMQ、MinIO
app服务会改成 Maven 开发容器- 后端源码会挂载进容器
- 检测到源码或配置变更后,会自动重启 Spring Boot 进程
- Maven 依赖缓存会持久化到根目录
data/m2
如果只想重建开发容器:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build app常用单服务启动命令:
docker compose up -d sys
docker compose up -d app
docker compose up -d app sys
docker compose -f docker-compose.yml -f docker-compose.dev.yml up本地运行 Java 服务时,需要先准备好:
- JDK 8
- Maven
- MySQL
- Redis
- RabbitMQ
默认 dev 配置:
- App API:
http://localhost:8080 - Netty:
http://localhost:8081 - Sys API:
http://localhost:8082 - App Swagger:
http://localhost:8080/doc.html - Sys Swagger:
http://localhost:8082/doc.html - MySQL:
localhost:3306 - Redis:
localhost:6379 - RabbitMQ:
127.0.0.1:5672
在 linfeng-love-backend 目录启动 App API:
mvn clean install -DskipTests
mvn -f linfeng-love-app/pom.xml spring-boot:run另开一个终端启动 Sys 后台接口:
mvn -f linfeng-love-sys/pom.xml spring-boot:run如果已经执行过 mvn clean install -DskipTests,后续只需要执行对应模块的 spring-boot:run 命令即可。不要在根目录直接执行 mvn spring-boot:run,也不要用 -am spring-boot:run,否则 Maven 可能会尝试启动父模块并报 Unable to find a suitable main class。
如果只想用 Docker 启动中间件,本地启动 Java 服务:
docker compose up -d mysql redis rabbitmq minio minio-init注意:Docker Compose 中 MySQL 暴露端口是 3308,Redis 暴露端口是 6378,而 application-dev.yml 默认连接 3306 和 6379。如果使用 Docker 中间件,需要同步修改 linfeng-love-app/src/main/resources/application-dev.yml 和 linfeng-love-sys/src/main/resources/application-dev.yml 的端口配置。
生产镜像部署使用两个后端镜像:
linfeng-love-app:App/小程序/H5 API,暴露8080,Netty 暴露8081linfeng-love-sys:后台管理 API,暴露8082
新增文件:
Dockerfile.app
Dockerfile.sys
docker-compose.prod.yml
.env.prod.example
.github/workflows/deploy-image.yml服务器首次准备目录:
mkdir -p /opt/linfeng-love-backend
cd /opt/linfeng-love-backend把 .env.prod.example 内容复制为服务器上的 .env,并修改数据库、Redis、RabbitMQ、MinIO 密码:
cp .env.prod.example .envGitHub 仓库需要配置 Actions Secrets:
SERVER_HOST 服务器 IP
SERVER_USER SSH 用户名
SERVER_SSH_KEY SSH 私钥
SERVER_PORT SSH 端口,默认 22
GHCR_TOKEN 可选;如果 GHCR 镜像是私有的,填一个有 packages:read 权限的 token
推送到 main 分支后,GitHub Actions 会自动:
- 构建
linfeng-love-app镜像 - 构建
linfeng-love-sys镜像 - 推送到 GHCR
- 上传
docker-compose.prod.yml和sql目录到服务器 - 在服务器执行拉取镜像并重启服务
服务器手动启动或重启:
cd /opt/linfeng-love-backend
docker compose -f docker-compose.prod.yml pull app sys
docker compose -f docker-compose.prod.yml up -d查看服务状态:
docker compose -f docker-compose.prod.yml ps
docker compose -f docker-compose.prod.yml logs -f app
docker compose -f docker-compose.prod.yml logs -f sys生产端口:
- App API:
http://服务器IP:8080 - Netty:
服务器IP:8081 - Sys API:
http://服务器IP:8082 - RabbitMQ 管理台:
http://服务器IP:15672 - MinIO 控制台:
http://服务器IP:9001
注意:MySQL 只会在首次创建数据目录时自动执行 sql 目录里的初始化脚本。如果数据库已经初始化过,后续新增 SQL 需要手动执行,或者后续接入 Flyway/Liquibase 做自动迁移。