Skip to content

bigwhites/XiaoLanShu

Repository files navigation

小蓝书 - 基于SpringBoot+SpringCloud的微服务架构

项目概述

小蓝书项目是模仿小红书的个人项目,目前仍在开发过程中,需要查看最新代码可以切换dev分支。
一个基于微服务架构的前后端分离系统,前端基于Uniapp,故可以在移动端全平台使用(后期可能会使用vue来编写PC端)

...

技术栈及版本

后端技术

  • 由于想要尝试使用JDK21新特性虚拟线程,故使用了最新的springboot版本,因此前期也是遇到了非常多的坑,
  • 各种依赖都需要使用最新版本。故对项目用到的主要依赖的版本做了梳理。
  • 数据库使用了PostgresSQL,基于bitnami/postgresql这一docker镜像实现了数据库的读写分离的架构。

主要依赖库与版本(详见pom.xml)

技术组件 版本 描述
Spring Boot 3.2.2 基础框架
Spring Cloud 2023.0.0 微服务基础框架
Spring Cloud alibaba 2022.0.0.0 微服务治理工具集
Spring Cloud Gateway - API网关服务
Redis 7.2.4 缓存、分布式锁
nacos 2.2.3 分布式配置、注册中心
MySQL 8.0.30 nacos的数据库
RabbitMQ 3.12.13 消息中间件
Elasticsearch 8.0.14 全文检索
Dubbo 3.3.0-Beta1 RPC框架
MyBatis Plus 3.5.5 ORM框架
MyBatis Plus Join 1.4.10 连表查询插件
PostgresSQL 16.2 数据库
JDK 21 解释器(为了支持虚拟线程)
Maven - 构建工具

服务模块及其端口号分配

服务模块说明

  • 笔记服务:提供笔记的增删改查、分享等业务逻辑处理。
  • 网关服务:基于Spring Cloud Gateway作为统一入口,负责路由转发、权限验证、限流熔断等操作。
  • 用户服务:负责用户账户管理、关注等功能。
  • 消息服务:负责图片等资源存储和管理、邮件的发送,以及通过websocket进行消息推送

端口号分配

服务模块 端口号 功能描述
网关服务(gateway) 8078 统一入口,负责路由转发等操作
笔记服务(blog-server) 9999 提供笔记相关业务逻辑处理
用户服务(user-info) 10000 用户账户管理和认证授权功能
消息服务(message-center) 3000、3002 推送消息、存储和管理用户上传文件
PostgresSQL(master) 5433 主数据库
PostgresSQL(slave1) 5434 从数据库1
PostgresSQL(slave2) 5435 主数据库2
Elasticsearch 9200 搜索引擎
rabbitmq 5672、15672 消息队列
nacos 7848、8848
9848、9849
分布式配置、注册中心
MySQL 3326 nacos数据库
Redis 6379 缓存、分布式锁

快速开始

快速部署

后端部署

由于后端依赖的服务依赖较多,故非常推荐使用docker-compose进行部署相关的依赖项。
所有依赖项的docker-compose文件都已放置在docker目录下,
因此只需要执行所有的脚本即可快速部署依赖项。若没有安装过docker或对其不熟悉,强烈建议先安装后再尝试部署本项目。
完成了依赖项的安装后,需要去各个服务的配置文件修改相应的配置。如果端口号与我的一致,那就无需修改端口。

前端部署

...

注意事项...

...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published