引入
学习java有一段时间了,但是总感觉看着视频写代码少了点意思,更喜欢自己创作的感觉,于是阅读了一些开源代码项目,最终确定下来写一个博客社区网站。
本来想的是简单试试水,但是真正写起来遇到问题很多,随着功能逐渐完善,就想着干脆写一个成熟一点的项目,于是引入了很多中间件来优化性能,项目的缓存结构是最复杂的部分,经历了多轮重构。
由于对很多后端和前端技术也是边学变改,因此项目总耗时较长,一共约600h,这个过程中把很多会踩的坑都踩了一遍。
该项目作为高并发和性能优化的学习入门应该是没有问题的,还请大佬轻喷🙏🙏🙏
项目简介
本项目是一个博客社区项目,采用前后端分离架构 开发,基本实现博客所有相关的功能,该项目也可作为内容社区 的模板。项目包括五大模块分别是用户、文章、评论、通知、聊天模块 。 后端所有核心模块均为独立自主开发 ,项目注释完整(个人代码习惯不是AI生成所以注释多),非常适合学习交流和二次开发。
功能实现
- 无限层级评论树,无限叠楼
- 通知点击跳转评论,自动置顶评论并展开到目标
- 用户聊天WebSocket 实时聊天,支持聊天框预览 ,支持删除撤回
- AI 大模型接口 接入,目前支持Qwen3,AI回答SSE流式渲染
- Docker 一键部署,三行代码运行
项目亮点
- 双层缓存架构:Redis + Caffeine
- 批量聚合:Disruptor + Redis
- 异步批量落库:Redis + RabbitMQ + Mysql
- 批操作优化:Lua+Pipeline批量操作Redis、Mysql批量读写
项目已在10000篇文章,1000用户,每篇文章Payload约为1.5KB的环境下使用Jmeter 对文章详情接口实测, 在500并发的测试环境下取得了4000QPS,0 错误 的成绩。

下图为项目的整体结构

项目展示
项目整体采用活泼可爱的界面和交互,操作体验好。
搜索简易实现

用户主页

通知跳转评论置顶渲染

实时聊天实时预览渲染,支持删除撤回(使用两个浏览器同时发送得到)

大模型对话,后续会更新加入更多模型。

技术栈
核心技术栈:
-
前端:Vue3 + Vite + TypeScript
-
后端:Spring Boot 3.x + MyBatis
-
缓存:整体 Redis 7 + Caffeine 双层缓存,ConcurrentMap 辅助
-
性能优化:Disruptor + Lua
-
消息队列:RabbitMQ 3.12
-
数据库:MySQL 8.0
-
测试:Jmeter
-
部署:Docker + Nginx
这些技术都是在遇到问题后查阅资料并深思熟虑后引入的技术,经过了类似技术的横向对比,而非技术栈的简单堆砌。
项目地址
项目目前已经全部开源,包括前端代码、后端代码和Docker运行代码,下面是仓库地址:
Github :CCBlog-Github
Gitee :CCBlog-Gitee
一键部署:
注意 :运行前请先确保
Docker功能正常,Win下安装和打开Docker Desktop,Linux下配置好Docker就可以,可使用docker version确认。
bash
git clone https://github.com/C2Z666/ccblog.git
cd ccblog/ccblog-docker
docker compose up
看到 server started 后到浏览器输入 localhost:8080 即可访问,默认用户包括czc、lcx、rk、ywl、ccblog,密码都是123,可以登录测试哦。图片上传和大模型聊天需要额外配置才可用。
如果项目对您有帮助,给项目点一个Star⭐吧!😊😊😊感谢支持!🙏🙏🙏
后续计划
个人精力时间有限,项目目前还未全部重构完毕,并且还有功能未加入。部署到云服务器正在筹备,在申请域名备案中。
最后,开发的涉及面太广太多,本人技术有限,不可能考虑到面面俱到。欢迎大家测试并提出问题,提出心愿功能,欢迎对开发感兴趣的道友合作开发,一起学习交流,同时欢迎大佬指导架构,作者虚心求教!😊😊😊
本人联系方式:
QQ:1839156312
后续我会整理开发过程中记录的文档,发布一系列关于技术实现(评论展开、异步落库、批量聚合、实时聊天系统、AI大模型接入等)、Jmeter测试、踩坑记录、性能优化、docker使用的教程和记录,欢迎持续关注!