# 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`