起因
拥有7年的Go开发经验,拥有架构设计和项目管理经验,准备做一些Java相关的技术储备。在网上找了一些资料,发现SpringCloud是一个不错的选择,于是就有了这个项目。
项目介绍
项目是一个以SaaS为企业服务体系的系统化项目,项目包括运营管理系统和企业后台,用于招聘求职,用户端支持安卓下载体验,用于求职。
APP功能
1.默认用户角色为求职者,展示职位搜索、区域搜索、求职状态创建等功能。
2.消息功能包括聊天、语音、文字、表情、照片、视频发送。
3.简历刷新功能,每日有限制次数,结合多级缓存实现。
4.收藏关注功能。
HR功能
1.切换身份为HR,展示招聘者功能,包括职位发布、简历收藏、互动消息等。
2.HR个人主页和企业主页,展示个人信息、标签、签名、职位挑选等。
企业后台功能
1.企业后台包括控制面板、企业信息、招聘管理、面试记录等。
2.控制面板展示数据统计,包括区域地图、雷达图、饼状图、柱状图。
3.企业信息展示公司相册、营业执照等。
4.招聘管理展示HR信息、历史职位、面试记录。
慕聘网功能
1.慕聘网提供控制密码、人数统计、文章管理、企业管理等功能。
2.文章管理包括发布、发表、修改、删除、关闭、开启文章。
3.企业管理包括认证、审核、通过、失败等。
4.行业类别和职位类别管理,通过数据表实现。
数据字典与参数配置
1.数据字典包含福利待遇等分类,可查询、修改、开启、停用。
2.参数配置包括每日最大刷新次数、充值秒杀等设置。
技术栈
本微服务项目采用了当前主流的 Spring Cloud Alibaba 架构体系,核心技术栈如下:
- 核心框架:Java 17, Spring Boot 3.x, Spring Cloud 2022.x, Spring Cloud Alibaba 2022.x
- 微服务治理:
- 注册中心/配置中心:Nacos Cluster
- 流量防卫兵:Sentinel (限流、熔断、降级)
- 分布式事务:Seata (AT/TCC/SAGA 模式)
- 服务网关:Spring Cloud Gateway (JWT 鉴权、动态路由)
- 负载均衡:Spring Cloud LoadBalancer
- 链路追踪:Zipkin + Micrometer Tracing
- 数据存储:
- 关系型数据库:MySQL 8.0 (主从集群、ShardingSphere 分库分表)
- 分布式缓存:Redis 7 Cluster (Redisson 分布式锁、热点数据分级缓存)
- 文档数据库:MongoDB (聊天记录、动态信息)
- 搜索引擎:Elasticsearch 8.x + IK 分词器 (职位搜索、智能推荐)
- 本地缓存:Caffeine
- 消息中间件:
- 消息队列:RabbitMQ (异步解耦、可靠投递)
- 数据同步:Canal (监听 Binlog 实时同步多级缓存)
- 其他组件:
- 网络编程:Netty (基于 WebSocket 的即时通讯)
- 对象存储:MinIO / Aliyun OSS
- 分布式协调:Zookeeper + Curator
- DevOps & 运维:
- 容器化:Docker, K8s (KubeSphere 容器平台)
- 流水线:Jenkins + SonarQube + Harbor
- 监控报警:Prometheus + Grafana
- 反向代理:Nginx + OpenResty (Lua 脚本)
系统架构图
以下是项目的逻辑架构全景图:

架构原理解析
项目采用高性能、高可用的分层架构设计,具体流程与技术实现如下:
- 全渠道接入:用户请求通过前端客户端发起,系统完美兼容 浏览器、iOS、Android、iPad 等多种终端,确保一致的交互体验。
- 三层网关治理:请求依次流经 云负载均衡器 (SLB/CLB)、Nginx 业务网关 和 **微服务网关 (Spring Cloud Gateway)**。
- 云负载均衡器:位于最前端,由云平台提供,负责海量高并发请求的初步分发。
- Nginx 网关:作为反向代理,构建后方服务集群。深度结合 Lua 脚本和 Redis 构建三级缓存体系,极大提升响应速度并保护后方服务。
- 微服务网关:基于 Spring Cloud Gateway,集成 限流防刷、熔断降级 等安全与稳定性策略,是微服务的统一入口。
- 微服务体系:
- 服务调用:业务微服务集群之间通过 OpenFeign/RPC 相互调用,并引入 Seata 解决复杂的分布式事务问题,确保数据最终一致性。
- 治理中心:使用 Nacos 作为统一的注册中心和配置中心,实现服务的动态发现与秒级配置推送。
- 数据与协调层:
- 全文检索与分析:构建 Elasticsearch 体系,支持海量简历和职位的全文检索、图表统计、用户画像分析等核心功能。
- 持久化方案:核心数据库使用 MySQL (由 MyBatis Plus 驱动),并利用 Canal 监听 Binlog 实时同步多级缓存,保障数据的强一致性。
- 异步与解耦:引入 RabbitMQ 消息队列,处理异步解耦、削峰填谷以及各类延迟任务(如面试自动提醒)。
- 分布式协调:利用 Zookeeper 实现节点监听、动态配置管理以及分布式锁。
- NoSQL 快照:MongoDB 负责存储系统信息快照、聊天记录以及海量的日志数据,提升非结构化数据的存取效率。
商业模式
通过对互联网常见盈利模式的分析,本项目(慕聘网)采用了最为核心且广泛应用的 B2B2C 模式,并结合了平台治理的思想。
常见商业模式定义
- **C2C (Consumer to Consumer)**:消费者对消费者的模式。如慕课网的讲师与学生,平台提供流量,个人制作内容并卖给其他个人。
- **B2C (Business to Customer)**:商家对客户的模式。商家通过网络平台直接向消费者销售产品或服务,是实体店转线上的主流模式。
- **B2B2C (Business to Business to Customer)**:目前最普遍的电商及服务平台模式。平台、入驻商家共同向最终顾客提供服务。如京东、天猫。
慕聘网 B2B2C 模式解析
本项目是一个典型的 SaaS 多租户招聘平台,其商业逻辑可拆解为三个角色:
- **第一个 B (Platform Admin)**:即慕聘网平台。提供底层架构(如运营管理后台)、流量分发机制、多租户数据隔离技术以及收费服务参数配置。
- **第二个 B (Enterprise/HR)**:企业入驻商家。企业方(HR)作为内容的生产者,在平台上发布职位信息、筛选简历并支付各种增值服务费(如职位置顶、简历下载等)。
- **最终的 C (Candidate)**:求职者或个人用户。通过平台搜索、投递、即时通讯与 HR 互动。
核心价值流转
- 平台赋能:慕聘网为各类企业(B2)提供招聘工具和平台治理能力。
- 内容驱动:招聘方(B2)生产职位内容吸引求职者(C)。
- 数据变现:通过数据字典和参数配置管理,实现诸如“每日刷新次数限制”、“会员秒杀”等商业闭环。
这种模式不仅在招聘行业盛行,也是目前市场上绝大多数中大型 SAAS 系统的商业基石。