Skip to content

项目全貌与答辩说明

本页作为网站详细版页面维护,适合用作项目介绍、答辩说明与面试展开的统一入口。

如果你准备围绕项目做一次完整讲解,建议优先按这个顺序展开:

  1. 如果你只有 3 分钟
  2. 项目定位与规模
  3. 为什么值得继续看
  4. 页面导览与业务闭环
  5. 核心链路与设计判断

如果你准备按整站“面试拆解与答辩”那组一路往下讲,建议统一按下面这条顺序:

  1. 项目全貌与答辩说明
  2. 核心亮点与项目价值
  3. 我的核心设计与实现
  4. 性能指标与结果
  5. 数据建模与表关系怎么讲
  6. 技术选型理由
  7. 难点踩坑与解决方案
  8. 未来规划 Roadmap
  9. 核心架构拷问 FAQ

🙋 个人独立项目声明:本项目由作者从零开始独立设计、编码并持续维护, 非培训项目或拼接式 Demo,仓库内保留了完整的开发与演进记录。

0. 如果你只有 3 分钟

如果你是第一次看这个项目,最推荐先抓住下面 3 组信息:

  1. 它不是单点 Demo,而是完整平台
    覆盖 用户端 App / H5商家端 Web平台管理端 Web 三类入口,不只是“后端接口 + 几张页面”。
  2. 它不是轻量 CRUD,而是多中间件协同工程
    当前项目有 16 个业务模块19 个可运行服务53 张核心表18 个 FeignClient30 个 RabbitMQ 监听器
  3. 它不是只会跑,而是已经能讲清楚
    文档站已经沉淀了 73 张链路图102 张截图11 篇专题页,可以直接对照页面、链路和代码展开面试说明。

如果你只想看 3 个入口,我建议按这个顺序:

一句话介绍版本可以直接这样讲:

SmartLive 是一个面向本地生活场景的微服务平台,覆盖用户端、商家端和平台管理端三类入口,把交易、搜索、社交、审核、IM、支付、积分、热榜和 AI/RAG 串成了同一套可运行、可追踪、可继续扩展的系统。

0.5 如果你正好是因为 AI / RAG 点进来的

如果你最关心的是“这个项目里的 Spring AI 和 RAG 到底是不是做实了”,最推荐先看下面这张总图,再决定要不要继续深入源码。

SmartLive AI RAG 核心链路总图

这张图把 SmartLive 里的 AI 主链路拆成了两条最关键的线:

  1. 知识建库链路:商品、店铺、评价、博客等业务数据先通过 MQ 增量同步进 Milvus。
  2. 在线问答链路:用户问题进入 Agent / Tool / RagService 后,再做向量检索和业务化生成,最后通过 SSE 把回答或卡片回给前端。

所以这套实现并不是“普通聊天页 + 一点向量检索点缀”,而是更接近生产落地的业务数据型 RAG

如果你只想先看一页把这个问题讲清楚,可以直接跳到:

1. 项目定位

SmartLive(智评生活) 是一个面向本地生活服务场景的微服务平台,覆盖用户发现、交易履约、内容互动、商家经营与平台治理。
它不是单一业务 Demo,而是把交易、搜索、社交、审核、IM、支付、积分、热榜、AI/RAG 等能力放进同一套可运行、可追踪、可继续扩展的系统里。

2. 这个仓库覆盖什么

  • 后端微服务主仓库:包含 16 个核心业务模块,并连同 auth / gateway / monitor 组成 19 个可运行服务应用。
  • 三类前端入口闭环:既覆盖用户端 App 的找店、下单、评价、博客、聊天与 AI 问答,也覆盖商家端 Web 的经营后台,以及平台管理端 Web 的审核治理与运营配置。
  • 多中间件协同:Redis、RabbitMQ、Elasticsearch、Milvus、MinIO、XXL-JOB、Nacos、Gateway、Sentinel、Seata 等共同支撑核心链路。
  • 仓库边界清晰:当前仓库聚焦后端与基础设施编排,前端管理端和用户端仓库入口见后文“项目仓库”。

3. 项目仓库矩阵

仓库角色定位技术栈入口
smartLive-Cloud后端微服务主仓库,承接交易、社交、搜索、AI、审核、调度与基础设施编排Spring Boot / Spring Cloud Alibaba / Redis / RabbitMQ / Elasticsearch / MilvusGitHub
smartLive-admin商家端 Web 与平台管理后台,覆盖店铺、商品、订单、审核、运营、系统管理等后台能力Vue + Element UIGitHub
smartLive-web用户端 App,覆盖登录、发现、下单、评价、博客、社交消息与 AI 能力Vue 移动端 / H5 页面体验GitHub

这三者的关系可以简单理解成:Cloud 负责后端与中间件协同,smartLive-admin 负责商家与平台后台,smartLive-web 负责用户端前台体验。阅读项目时,建议先看本仓库,再配合页面导览理解前端呈现。

补充说明:

  • 如果你按本地工作区理解,这三套代码当前分别对应 smart-live-Cloudsmart-live-appsmartLive-ui 三个目录。
  • 这一节保留的是对外展示时的仓库入口口径,方便招聘方或面试官直接跳到对应仓库。

4. 为什么值得开源阅读

维度内容
业务范围覆盖本地生活场景中的发现、交易、履约、评价、社交、经营分析与平台治理
技术主题微服务拆分、Redis 分层缓存、消息可靠投递、秒杀与订单补偿、热榜计算、AI/RAG 集成
文档资产首页导览图、业务链路图、Redis 设计图、XXL-JOB 调度图、真实页面截图
适合人群想看完整 Java 微服务项目、准备面试复盘、或想学习“业务闭环 + 工程化设计”落地方式的人

5. 项目规模

维度数值说明
核心业务模块16 个用户、店铺、商品、订单、博客、互动、搜索、AI、IM 等核心业务模块
可运行服务应用19 个16 个业务模块 + auth + gateway + monitor
核心能力域6 大类发现推荐、交易履约、社交互动、内容治理、经营分析、基础设施
前端入口覆盖3 类用户端 App + 商家端 Web + 平台管理端 Web
核心业务代码30,000+ 行以服务端业务逻辑为主
文档与图示资产70+ 链路图 / 100+ 截图当前文档站已沉淀 73 张链路图、102 张引用截图与 11 篇专题页
Git 提交记录200+可回溯完整开发过程

5.2 项目开发时间线(按 Git 提交记录粗粒度归纳)

如果面试官追问“这个项目是不是一步步做起来的”,最容易讲清楚的方式不是背模块名,而是按阶段回看它是怎么长出来的。

阶段时间当时主要做了什么现在可以怎么讲
第 1 阶段2025.10初始化仓库,先把登录、首页、地图、搜索、私信、AI 评论 / 下单雏形做起来先证明项目不是只会 CRUD,而是从一开始就在做完整用户链路
第 2 阶段2025.11引入 RabbitMQ、死信队列、线程池、ES 同步策略和首页聚合能力这一步开始把“能跑”推进到“能抗压、能异步解耦”
第 3 阶段2025.12把互动域独立出来,统一点赞 / 收藏 / 评论 / 关注策略模式,升级到 Boot 3.2.2,并把 AI 工程合回主仓库这一步最适合讲“我开始从堆功能转向做结构化抽象”
第 4 阶段2026.01重构 Netty IM,补代金券、订单、动态推送、审核中心初版,统一 DTO / 返回结构这一步最适合讲“我开始做跨服务协同和业务骨架收束”
第 5 阶段2026.02深化 AI 会话、审核中心、缓存体系、评论评价系统、XXL-JOB 同步、热榜与搜索策略这一步最适合讲“系统从单条链路扩展成多条协同链路”
第 6 阶段2026.03完成订单过期与自动退款、MQ 幂等与重试补偿、商家 AI 助手,并集中建设文档站、链路图和页面导览这一步最适合讲“我把项目从能做完,推进到能讲清楚、能开源、能答辩”

如果只用一句话概括这 6 个月,我会这样说:

前 2 个月把“主链路和基础设施”搭起来,中间 2 个月把“服务边界和结构抽象”做扎实,最后 2 个月把“AI、补偿、文档站和可表达性”补齐。

5.5 这页最值得主动讲的 3 组数据

如果你要把这页当答辩开场页,我最推荐优先抛这 3 组:

  1. 规模数据16 个业务模块 / 19 个服务应用 / 53 张核心表
    这组数据最能证明它不是课程级小项目,而是一个跨多个业务域的完整平台。
  2. 协同密度18 个 FeignClient / 30 个 RabbitMQ 监听器 / 26 个 @XxlJob 处理器
    这组数据最能证明项目不是“拆了服务名但没有真实协同”,而是确实有跨服务调用、消息驱动和定时补偿。
  3. 文档与展示资产73 张链路图 / 102 张截图 / 11 篇专题页
    这组数据最能证明这个项目不是只写代码,还能完整表达架构、业务闭环和设计判断。

如果你需要一句更像面试回答的话,可以直接说:

我这个项目最核心的不是“服务拆得多”,而是三件事一起成立:业务闭环完整、服务协同真实存在、文档和链路图可以直接验证。

5.8 如果面试官只让我讲 1 分钟

你可以直接按下面这个版本讲:

SmartLive 是我独立完成的一个本地生活微服务平台,覆盖用户端、商家端和平台管理端三类入口。
后端这边我拆了 16 个业务模块、19 个可运行服务,把交易、搜索、社交、审核、IM、支付、积分、热榜和 AI/RAG 放进同一套系统里。
工程上我重点做了 Redis 分层缓存、RabbitMQ 异步解耦、秒杀链路、订单支付退款补偿、Feed 推送、搜索同步和商家 AI 助手这些能力。
这个项目我不仅把代码跑起来了,还补了完整的页面导览、链路图和专题文档,所以它既能讲实现,也能讲架构判断和工程表达。

如果想再压缩成更短的 30 秒版本,可以这样说:

这是一个覆盖用户端、商家端和平台管理端的本地生活微服务平台。我独立完成了 16 个业务模块、19 个服务的后端设计和实现,重点做了交易、缓存、MQ、搜索、社交、审核和 AI 能力,并且把页面、链路和专题文档都沉淀成了在线文档站。

6. 统计口径说明

指标统计口径
业务模块统计 smartLive-modules 下的实际业务服务,不包含 api / common / visual / sentinel / seata-server 等支撑工程
服务应用业务模块 + smartLive-auth + smartLive-gateway + smartLive-monitor,按可独立运行的服务口径计算
代码量README 保留“核心业务代码 3万+”口径;网站首页卡片展示仓库当前 Java 总量 7万+,两者分别用于强调业务密度与工程总体量
页面截图统计 docs/screenshots 中当前被在线文档实际引用的截图,不包含 legacy 归档图
链路图分开展示版 SVG 与详细版 SVG 两套数量,均以 docs/diagrams 当前可访问文件为准
XXL-JOB 任务对外展示继续沿用调度后台截图中的 28 个任务口径;如果按代码内 @XxlJob 处理器统计,当前为 26

6.5 还能从代码里直接读出的工程密度

这些数据不一定适合放到首页大卡片里,但很适合在面试或项目介绍时证明这不是“几个页面 + 几个接口”的轻量 Demo。

维度当前数据说明
API 契约模块10 个smartLive-api 下拆分了 AI、博客、聊天、互动、订单、积分、商品、店铺、系统、用户 10 组接口契约
通用基础组件11 个smartLive-common 下沉淀了 Redis、RabbitMQ、XXL-JOB、安全、日志、敏感词、多数据源等基础能力
Java 文件数831 个反映的是工程总体体量,不等同于“核心业务代码 3万+”的表达口径
Controller 数量71 个能直观看出这个项目不是单一业务,而是多域协同的完整平台
FeignClient 数量18 个体现服务间接口调用的拆分密度与边界设计
RabbitMQ 监听器30 个说明你项目里消息驱动与最终一致性不是停留在概念层
文档专题页11 篇site-pages 已形成系统架构、数据模型、性能、选型、FAQ、Roadmap 等专题材料

7. 为什么值得继续往下看

  • 不是只做“登录 + CRUD”的展示型项目,而是真正把多业务域和多中间件串成闭环。
  • 同时覆盖 ToC 用户体验、ToB 商家经营、平台审核治理 三条线,项目视角更完整。
  • 文档里已经补齐 业务链路、缓存设计、调度体系、页面导览,第一次阅读也能快速建立全局认知。

8. 继续往下看什么

如果你已经看完这页,下一步建议这样接:

  1. 项目级能力亮点,先把“项目整体强在哪”讲清楚。
  2. 我的核心设计与实现,再把“我具体做了什么”讲清楚。
  3. 性能指标与结果,把性能与工程表现补齐。
  4. 数据建模与表关系怎么讲,把交易、资产和互动的建模思路讲清楚。
  5. 再回到 技术选型理由难点踩坑与解决方案核心架构拷问 FAQ,把“为什么这样做”和“怎么回答追问”补齐。