# work **Repository Path**: yellow-kun/work ## Basic Information - **Project Name**: work - **Description**: 个人项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-14 - **Last Updated**: 2026-03-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tianji Showcase 一个面向求职展示整理过的 `Java 后端微服务` 项目仓库。 这个公开版仓库从我的私有开发仓库中抽取了核心源码,并补充了架构说明与模块亮点文档,方便面试官快速了解项目能力。前端页面、Jenkins、Nacos、RabbitMQ、Redis、MySQL、Elasticsearch 等运行环境实际部署在个人虚拟机的 Docker 环境中,因此这里重点展示后端设计、模块拆分和关键实现。 ## 项目概览 - 项目类型:在线教育平台后端 - 架构形态:Spring Cloud Alibaba 微服务 - 开发语言:Java 11 - 核心框架:Spring Boot、Spring Cloud Alibaba、MyBatis-Plus - 中间件:MySQL、Redis、RabbitMQ、Nacos、Elasticsearch、XXL-Job - 工程能力:Docker 化部署、网关路由、服务注册发现、异步解耦、缓存优化 ## 架构总览 ```mermaid flowchart LR U["Web / Admin Frontend"] --> G["Gateway
tj-gateway"] G --> A["Auth
tj-auth"] G --> C["Course
tj-course"] G --> L["Learning
tj-learning"] G --> P["Promotion
tj-promotion"] G --> T["Trade
tj-trade"] G --> R["Remark
tj-remark"] G --> S["Search
tj-search"] G --> M["Media
tj-media"] G --> MSG["Message
tj-message"] G --> D["Data
tj-data"] C --> DB[(MySQL)] L --> DB P --> DB T --> DB R --> DB C --> REDIS[(Redis)] L --> REDIS P --> REDIS R --> REDIS T --> REDIS L --> MQ[(RabbitMQ)] P --> MQ R --> MQ C --> NACOS[(Nacos)] G --> NACOS L --> NACOS P --> NACOS T --> NACOS S --> ES[(Elasticsearch)] ``` ## 我的实现重点 这份仓库不会把所有模块都平均展开,而是突出我参与度更高、也更能体现后端能力的部分: | 模块 | 能力点 | 说明 | | --- | --- | --- | | `tj-learning` | 学习签到与积分体系 | 用 Redis Bitmap 记录签到、用 ZSet 维护月度积分榜、通过 RabbitMQ 异步发放积分 | | `tj-remark` | 点赞与互动统计 | 用 Redis Set 记录点赞状态,结合 Lua 脚本维护点赞计数,批量查询时用 Pipeline 降低 RTT | | `tj-promotion` | 优惠券与兑换码 | 异步批量生成兑换码,结合 Redis 维护序列号和兑换状态 | | `tj-course` | 课程发布流程 | 包含课程草稿、上架、目录与题目关联、发布消息通知等完整后端链路 | | `tj-gateway` | 统一入口 | 对各业务服务做统一路由与跨域处理 | `Seata` 在项目中属于已有架构环境的一部分,我在公开版中只做背景说明,不把它作为个人主打亮点。 ## 仓库导航 - 架构说明:[docs/architecture.md](docs/architecture.md) - 模块亮点:[docs/highlights.md](docs/highlights.md) - 环境变量示例:[.env.example](.env.example) ## 目录结构 ```text . ├── tj-auth ├── tj-common ├── tj-gateway ├── tj-course ├── tj-learning ├── tj-promotion ├── tj-trade ├── tj-remark ├── tj-search ├── tj-media ├── tj-message ├── tj-user ├── tj-data └── docs ``` ## 运行说明 由于这是求职展示版仓库,默认不附带可直接上线的完整私有环境配置: 1. Nacos、MySQL、Redis、RabbitMQ、Elasticsearch 等依赖需要自行准备。 2. 仓库中的敏感配置已经替换为环境变量占位符。 3. `tj-auth` 所需的 `tjxt.jks` 没有放入公开仓库,若要运行认证服务,请自行准备证书文件。 4. 前端工程和运维工具链不在本仓库中,当前仓库仅展示后端源码与设计思路。 ## 为什么没有线上演示地址 项目的完整运行依赖多个微服务和中间件协同,个人线上机器内存不足以长期稳定托管整套环境。因此公开仓库采用了更适合求职展示的形式: - 保留核心源码 - 补充架构图与模块说明 - 说明部署环境与技术选型 - 删除敏感配置与私有证书 如果你是面试官,希望快速了解这个项目,建议优先阅读: 1. `README.md` 2. `docs/architecture.md` 3. `docs/highlights.md`