Spring Cloud Alibaba 小哈书(仿小红书)微服务项目实战:专栏介绍
友情提示
推荐您使用 Chrome 浏览器来阅读本实战专栏,其他浏览器可能存在兼容性问题。
大家好,我是小哈~
星球第二个项目开整啦,这次我们要开发一个仿小红书项目 —— 小哈书 !
💁 项目介绍
先来看一下小红书官网的对自己的介绍:
小红书是一个年轻生活方式分享平台,由毛文超和瞿芳创立于2013年。
截止2019年1月,小红书用户数超过2亿,其中90后和95后是最活跃的用户群体。
在小红书,用户通过短视频、图文等形式记录生活的点滴。
社区每天产生数十亿次的笔记曝光,内容覆盖时尚、护肤、彩妆、美食、旅行、影视、读书、健身等各个生活方式领域。
🍉 架构图
本项目不再是单体架构,而是采用企业主流的 Spring Cloud Alibaba 技术栈,微服务分布式项目搞起!整体架构图如下:
PS : 本专栏主要讲解后端部分。前端工程后续也会提供相关源码,需要等后端相关接口开发完成后。(
uni-app
暂不做实现,等后面再说)
💡 你能学到什么?
- 【从 0 到 1 落地微服务架构】,开局一个 IDEA,渐进式地将一个微服务项目搭建起来;
- 【学习 Spring Cloud Alibaba 微服务生态组件】,如注册中心、配置中心 Nacos; 网关 Gateway、限流降级 Sentinel、分布式事务 Seata、服务间调用 Feign,以保障服务的高可用;
- 【微服务拆分、前后端分离】,学会将系统拆分为多个微服务,实现服务之间低耦合,功能高内聚,以便对各服务分配不同的服务器资源;
- 【中间件使用】,使用 Redis 缓存、RocketMQ 消息等中间件,提升系统性能,保障服务高性能响应;
- 【分布式事务】,使用 Seata 解决微服务架构下的分布式事务问题;
- 【用户认证鉴权】,使用 SaToken 来实现用户的认证鉴权,告别 Spring Security 复杂繁琐的配置;
- 【需求分析,表设计,接口设计】,通过分析 UI 原型图,来分析需求,从而进行表建模,以及接口的设计;
- 【分布式搜索引擎】, 使用 Elasticsearch 提供相关中文分词搜索功能,如笔记搜索,用户名搜索等;
- 【对象存储】,接入多种对象存储服务,如 Minio , 阿里云 OSS 等,实现对图片,视频的文件存储;
- 【Docker 容器化】,使用 Docker 容器化技术快速搭建各种环境,包括微服务的容器化部署;
- 【运维经验: CI / CD 持续集成与部署】,通过 Git 来做代码托管以及版本控制,以及 Jenkins 实现自动化部署,企业级项目上云,部署至生产环境,以供用户访问;
- 更多细节,尽在项目中...
📖 专栏大纲
💡 TIP : 以下目录不代表最终内容,只会更多,目前只是把部分规划好罗列出来,每一阶段完成后,持续更新专栏目录。
-
一、项目介绍
-
二、本地开发环境搭建
-
三、Java 9 ~ 17 新特性讲解
-
四、IDEA 搭建微服务项目
- 4.1 搭建微服务项目骨架:通过 Maven 多模块方式
- 4.2 添加 framework 平台基础设施模块
- 4.3 自定义 Spring Boot 3.x Starter: 封装 API 请求日志切面业务组件
- 4.4 Spring Boot 3.x 整合 MyBatis
- 4.5 Spring Boot 3.x 整合 Druid 数据库连接池(含密码加密)
- 4.6 Spring Boot 3.x 整合 MyBatis 代码生成器插件
- 4.7 自定义 Jackson 配置:支持 LocalDateTime 日期 API
- 4.8 Spring Boot 3.x 整合 Logback 日志框架(支持异步写入)
- 4.9 整合 flatten-maven-plugin 插件:解决子模块单独打包失败问题
- 4.10 Spring Boot 添加全局异常捕获、接口参数校验
-
五、整合 SaToken 实现 JWT 登录功能
-
六、Gateway 网关服务搭建
-
七、认证服务开发&网关鉴权
-
八、对象存储服务搭建与开发
-
九、用户服务搭建与开发
-
以上为本项目第一阶段需要更新的内容,持续爆肝中...
👨🏻💻 适用人群
-
在校学生,有 Java Web 单体项目开发基础,想做毕业设计,或者为找工作准备,需要实战项目加分;
💡 TIP: 小白也没关系,小哈将会告诉你学习路线是啥,哪里有免费的高质量学习视频可以白嫖,学完这些技术栈后再来做实战项目,或者学一点基础边实战边学习都可以。
-
初级以上 Java 后端开发人群,想继续提升技术,对 Spring Cloud Alibaba 微服务感兴趣的童鞋;
✅ 技术储备
- 具备一定的 Java 开发基础;
- 使用过 Spring Boot 进行 Web 项目开发;
- 了解微服务架构;
🏠 环境参数
- JDK 17;
- Spring Boot 3.0.2;
- Spring Cloud Alibaba 2022.0.0.0-RC2;