# chatsystem **Repository Path**: xiang11111/chatsystem ## Basic Information - **Project Name**: chatsystem - **Description**: 基于微服务架构的实时聊天系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-12-02 - **Last Updated**: 2025-10-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 即时聊天系统项目(微服务架构) ## 项目简介 本仓库为**即时聊天系统**,包含**服务端**和**客户端**两大部分,均已开发完成。 - 服务端采用微服务架构,实现用户、好友、消息、文件、语音、网关等多业务模块。 - 客户端基于 Qt 技术栈,支持丰富交互、界面定制和多端通信。 --- ## 服务端架构与功能 服务端采用微服务架构,分为7个核心子服务: - **用户服务**:用户注册、登录、信息管理 - **好友服务**:好友添加、删除、好友关系管理 - **消息转发服务**:即时消息路由与分发 - **消息存储服务**:消息历史存储、检索 - **文件存储服务**:文件上传、下载、管理 - **语音识别服务**:语音消息解析与转文本 - **网关服务**:HTTP/WebSocket统一入口、协议转换 ### 技术要点 - 配置管理:gflags - 日志系统:spdlog - RPC框架:高性能RPC服务端/客户端 - 服务注册与发现:etcd - 数据库管理:MySQL - 缓存管理:Redis - 消息队列:RabbitMQ - 搜索引擎:Elasticsearch ### 服务端模块组成 - rpc服务器与客户端 - 服务注册与发现模块 - MySQL/Redis 数据管理 - RabbitMQ消息队列 - Elasticsearch检索 - 语音/短信/文件业务模块 ### 子服务实现流程 1. 参数/配置文件解析,获取运行参数 2. 初始化各功能子模块(如用户:redis、mysql、registry、dms等) 3. 构建并启动RPC服务器 4. 启动服务并注册到服务中心 ### 服务端部署 - Docker 镜像打包 - docker-compose 一键式部署,自动启动所有服务及依赖组件 - 支持挂载配置、日志、数据目录,方便运维 --- ## 客户端架构与功能 客户端采用 **Qt 技术栈**,功能完善,界面美观,支持多种交互: ### 客户端技术要点 - Qt 组件/布局管理器实现 UI 布局 - QSS 样式表优化界面风格 - 自定义控件实现复杂交互 - 信号槽机制实现多样化人机交互 - Protobuf 实现数据通信序列化 - HTTP/WebSocket 支持与服务器异步通信 - 多媒体组件实现语音控制与发送 - 工厂/观察者设计模式优化结构 - QPainter API 实现验证码/图形生成 - MockServer 辅助测试客户端各功能 ### 客户端业务功能 - 用户注册、登录、聊天、好友管理 - 即时消息发送与接收 - 文件与语音消息支持 - 多协议通信及兼容性