Skip to content

项目经历

仿微信即时通讯系统 | 2024.XX - 2024.XX

项目描述: 基于前后端分离架构开发的分布式即时通讯系统,包含跨平台桌面客户端和高并发后端服务,实现了类似微信的完整聊天功能,支持文字、图片、视频消息收发,具备集群部署和高可用能力

技术架构:

前端技术栈:

  • 桌面应用: Electron + Vue3 + Element Plus,构建跨平台桌面客户端
  • 状态管理: Pinia 进行全局状态管理,Axios 处理 HTTP 请求
  • 本地存储: SQLite 数据库支持离线数据持久化和快速查询
  • 实时通信: WebSocket 客户端实现与服务端双向通信
  • 文件服务: Express 搭建本地文件服务器,处理静态资源访问
  • 多媒体: FFmpeg 音视频处理,DPlayer 视频播放,Viewer.js 图片预览

后端技术栈:

  • 核心框架: Spring Boot 构建微服务架构,提供 RESTful API
  • 数据持久化: MyBatis-Plus + MySQL,实现高效的数据库操作和查询优化
  • 网络通信: Netty + WebSocket 实现高性能长连接服务
  • 缓存中间件: Redis 缓存热点数据,Redisson 实现分布式锁和集群协调
  • 集群部署: 基于 Redis 发布订阅机制实现消息广播,支持多节点集群部署
  • 接口文档: Swagger 自动生成 API 文档,提升开发协作效率

核心功能:

  • 即时通讯: 支持一对一、群聊等多种聊天模式,消息实时推送
  • 多媒体消息: 文字、表情、图片、视频、文件等多种消息类型支持
  • 离线消息: 客户端离线时消息服务端持久化,上线后自动同步
  • 文件传输: 大文件分片上传,断点续传,支持多种文件格式
  • 集群高可用: 多节点部署,单点故障自动切换,保证服务稳定性
  • 用户管理: 用户注册登录、好友管理、群组管理等完整社交功能

技术亮点:

  • 高并发架构: Netty NIO 模型 + 连接池优化,单节点支持 10K+ 并发连接
  • 分布式消息: Redis 发布订阅 + Redisson 分布式锁,实现集群间消息同步
  • 数据库优化: MyBatis-Plus 分页插件 + MySQL 索引优化,查询性能提升 70%
  • 缓存策略: Redis 多级缓存 + 消息队列,系统响应时间控制在 100ms 内
  • 连接管理: WebSocket 心跳检测 + 自动重连机制,保证连接稳定性
  • 安全机制: JWT 令牌认证 + AES 消息加密,保障通信安全

系统架构:

  • 客户端层: Electron 桌面应用,负责用户交互和本地数据管理
  • 网关层: Nginx 负载均衡 + SSL 证书,提供统一入口和安全保障
  • 应用层: Spring Boot 集群,处理业务逻辑和 API 服务
  • 通信层: Netty 服务器集群,处理 WebSocket 长连接和消息推送
  • 数据层: MySQL 主从复制 + Redis 集群,保证数据一致性和高可用

个人职责:

  • 架构设计: 负责整体系统架构设计和技术选型,制定开发规范
  • 后端开发: 完成 Spring Boot 核心业务模块开发,实现用户、消息、群组等功能
  • 通信服务: 基于 Netty 开发 WebSocket 服务器,实现高性能实时通信
  • 前端开发: 完成 Electron 客户端核心功能,优化用户体验和性能
  • 集群部署: 设计并实现基于 Redis 的分布式消息广播机制
  • 性能优化: 数据库索引优化、缓存策略设计,系统整体性能调优

项目成果:

  • 系统支持 5000+ 并发用户同时在线,消息传输延迟低于 50ms
  • 通过集群部署实现 99.9% 服务可用性,支持水平扩展
  • 完整的开发文档和 API 接口文档,便于后续维护和功能扩展

专业技能

熟练掌握 Java,熟悉 Java 8 及以上版本,掌握面向对象编程、Lambda 表达式、。

熟练使用 Spring、Spring Boot、Spring MVC 等框架进行后端开发,了解微服务架构。熟练掌握 MySQL,能编写高效 SQL 语句及进行索引优化;了解 Oracle;熟悉 Redis 缓存机制。

熟练掌握 MyBatis、MyBatis-Plus,了解 Hibernate,具备良好的数据库建模与 ORM 映射能力。

熟练使用 HTML、CSS、JavaScript/typeScript,能够熟练使用 Vue3 + Element Plus 进行前端开发。

能够使用 Git 进行代码版本管理,具备良好的团队协作与代码管理能力。

具备网络编程基础,了解 TCP/IP、HTTP 、ws协议,基于 Netty 与标准 WebSocket 协议,实现低延迟双向推送即时通讯。
熟练使用 Swagger 自动生成文档、配合团队之间的协作,Postman 编写测试集合。

项目经历

**项目描述:**基于 Spring Boot + Electron-Vite 实现的跨平台桌面客户端,支持单聊/群聊、好友管理、消息截图/媒体发送、离线存储与在线推送。

**前端技术栈:**
Electron + Vue3 + Element Plus,构建跨平台桌面客户端 Pinia 进行全局状态管理,Axios 处理 HTTP 请求
SQLite 数据库支持离线数据持久化和快速查询
WebSocket 实现客户端与服务端双向通信,重连策略,发送心跳。
Express 搭建本地文件服务器,处理静态资源访问 FFmpeg 音视频处理,DPlayer 视频播放,Viewer.js 图片预览

**后端技术栈:** 
Spring Boot 构建服务架构,提供 RESTful API
MyBatis-Plus + MySQL,实现高效的数据库操作和查询优化
基于 Netty 的 WebSocket 实现长连接推送模块,实现心跳检测
使用redis实现心跳缓存,token权限管理,Redisson 实现集群协调,实现集群间消息同步。
Swagger 自动生成 API 文档,提升开发协作效率 

**核心功能:** 
支持一对一、群聊等多种聊天模式,消息实时推送
支持文字、表情、图片、视频、文件、截图等多种消息类型
用户注册登录、好友管理、群组管理等完整社交功能
后台功能提供用户在线状态,是否强制下线,支持客户端版本推送,等一些对用户,群组的管理操作。
客户端离线时消息服务端持久化,上线后自动同步
服务器支持集群部署、数据同步
WebSocket 心跳检测 + 自动重连机制,保证连接稳定性

荣誉奖项

全国程序设计天梯赛三等奖
传智杯程序设计挑战赛校赛一等奖

TODO

1、redis实现心跳缓存,作用用于查看在线情况

如有转载或 CV 的请标注本站原文地址

访客数 --| 总访问量 --