南顾
在线

南顾

全栈开发工程师

关于本站

这是一个基于 go-zero 微服务架构和 Vue 3 构建的现代化全栈博客系统。 采用前后端分离架构,通过 gRPC 实现服务间通信,支持文章管理、用户系统、评论互动、私信聊天、实时通知等完整功能。 系统注重性能优化、安全防护和用户体验,是学习现代 Web 开发技术栈的优秀实践项目。

系统架构

🔍 点击查看大图

架构特性

🏗️ 微服务架构
采用 go-zero 框架,包含 User、Article、Comment、Tag、Message、Announcement、Friend、Guestbook 八个独立 RPC 服务,通过 etcd 实现服务注册、发现与健康检查
🎯 API 网关
统一的 REST API 网关,负责路由转发、JWT 鉴权、限流防护、跨域处理、操作日志记录等功能,支持中间件链式调用
🔄 实时通信
双通道实时推送架构:SSE (Server-Sent Events) 长连接推送系统通知,WebSocket 双向通信支持私信聊天,断线自动重连,保证消息实时性
🔌 WebSocket 聊天
基于 gorilla/websocket 实现的实时聊天系统,Hub/Client 架构管理连接,点对点消息推送,支持在线状态检测、消息确认、心跳保活
💬 私信系统
用户间私信沟通,支持会话列表、未读计数、消息已读标记、软删除、批量操作等完整功能,实时消息推送
📢 公告系统
管理员发布系统公告,支持草稿/发布状态管理,首页轮播展示重要通知,公告优先级排序
🤝 友链系统
友情链接管理,支持友链分类、申请审核、状态管理、排序优先级,前台分类展示
📖 留言板
访客留言功能,支持游客/登录用户留言、点赞互动、置顶推荐、审核管理、敏感词过滤
🎵 音乐播放器
全站背景音乐播放,支持音乐列表管理、文件上传、封面管理、播放控制,腾讯云 COS 存储
📊 操作日志
管理员操作审计,异步队列批量写入,Worker Pool 并发处理,Cron 定时清理过期日志,实时监控统计
🛡️ 限流防护
多级限流策略:IP 级别限流、用户级别限流、API 级别限流,登录失败黑名单,IP 白名单,Bot 检测,限流日志持久化
☁️ 对象存储
集成腾讯云 COS 对象存储,支持用户头像、文章图片、音乐文件等上传,CDN 加速访问,防盗链配置
🐳 容器化部署
基于 Docker Compose 编排,支持一键部署,包含完整的开发和生产环境配置,健康检查,自动重启

功能特性

📝
Markdown 编辑
富文本编辑器,实时预览,代码高亮,图片上传
🔔
实时通知
SSE 长连接,实时推送各类消息提醒
🔌
WebSocket 聊天
双向实时通信,点对点消息,自动重连
💬
私信系统
用户间私信沟通,会话管理,消息状态
📢
公告系统
系统公告发布,首页轮播展示
🤝
友链管理
友情链接,分类管理,申请审核
📖
留言板
访客留言,点赞互动,审核管理
🎵
音乐播放器
全站背景音乐,列表管理,文件上传
收藏功能
文章收藏,收藏夹管理,状态批量查询
🗑️
回收站
软删除机制,误删恢复,定时清理
📊
数据统计
文章阅读量,点赞评论统计,用户行为分析
📋
操作日志
操作审计,异步队列,定时清理
🛡️
限流防护
多级限流,黑名单,Bot检测,日志记录
🌐
IP 追踪
用户注册 IP 记录,归属地查询,安全审计
☁️
云存储
腾讯云 COS,头像图片音乐,CDN 加速
🎨
响应式设计
适配各种屏幕,深色模式,流畅动画
🔐
安全认证
JWT 认证,角色权限,会话管理
高性能
Redis 缓存,gRPC 通信,懒加载优化
🔍
全文搜索
文章标题内容搜索,标签分类筛选
👤
用户系统
用户注册登录,个人资料,头像上传
🎯
SEO 优化
Meta 标签,结构化数据,sitemap 生成

技术栈

💻

后端

Go 1.24 go-zero gRPC WebSocket etcd SSE JWT Protocol Buffers robfig/cron
🎨

前端

Vue 3 Vite 5 Element Plus Pinia Vue Router Markdown-it Axios Mermaid.js Day.js
🗄️

数据库

MySQL 8.0 Redis 7 etcd 3.5 SQL 迁移 连接池
☁️

云服务

腾讯云 COS CDN 加速 ip-api DiceBear 对象存储
⚙️

中间件

Worker Pool Channel 队列 Cron 定时任务 限流器 IP 黑名单
🐳

部署

Docker Docker Compose Nginx Alpine Linux Shell Script 健康检查
🛠️

工具

Git goctl protoc npm Vue DevTools Postman

联系方式