喵喵Chat 是一款基于微服务架构的高性能即时通讯系统,支持文字/文件/语音消息、好友管理、实时通知等功能,采用C++技术栈构建,满足高并发场景需求。
客户端下载与源码:https://gitee.com/wsllwsll/micro_service_based_chat-room_-client
- 微服务架构:服务拆分(网关/用户/好友/文件/消息/语音/消息转发 子服务),独立部署扩展
- 通信协议:HTTP + WebSocket 双协议支持,双向数据收发
- 服务治理:Etcd 服务发现 + Docker 容器化部署 + Cmake 构建
| 领域 | 技术选型 |
|---|---|
| C++常见框架 | gflags gtest Spdlog |
| RPC框架 | BRPC(高性能RPC框架) |
| 数据存储 | MySQL/ODB(关系型)+ Redis(高性能)+ Elasticsearch(消息搜索) |
| 消息队列 | RabbitMQ(消息持久化与异步处理) |
| 通信协议 | ProtoBuffer(高效序列化)+ WebSocket(实时推送)+ http(建立连接) |
| 云服务整合 | 百度AI语音识别 + 阿里云短信服务 |
| 服务注册与发现 | etcd(分布式、高可用的一致性键值存储系统) |
- 多方式注册登录(用户名/手机号+短信验证码)
- 个人资料管理(头像/昵称/签名/手机号)
- 在线状态跟踪(redis session存储)
- 好友全生命周期管理(搜索/申请/同意/删除)
- 实时好友状态通知(WebSocket推送)
- 单聊/群聊消息(支持历史消息查找)
- 多媒体消息支持(图片/文件/语音)
- 语音消息实时转文字(百度AI集成)
- 消息全文检索(Elasticsearch优化查询)
- 离线消息存储(高效数据存储)
- Docker 20.10+
- Docker Compose 2.15+
- 4核CPU/8GB内存
# 克隆仓库
git clone https://gitee.com/wsllwsll/micro-service_based_chatroom
如果需要真正在多台主机上部署,你需要
| 目录 | 大致内容 |
|---|---|
| common | 用于存放公共头文件 |
| conf | 用于存储配置文件 |
| example | 项目所用的框架学习与测试代码 |
| file | 文件存储子服务的源码和测试代码 |
| friend | 好友管理子服务的源码和测试代码 |
| gateway | 网关子服务的源码和测试代码 |
| message | 消息管理子服务的源码和测试代码 |
| odb | 用于存放odb.hxx |
| proto | 定义各个服务和前后端的proto文件 |
| speech | 用于存放odb.hxx |
| sql | 用于存放sql文件 |
| third | 用于存放第三方库 |
| transmit | 消息转发子服务的源码和测试代码 |
| user | 用户管理子服务的源码和测试代码 |
- 主机没有开启rabbitmq的自动启动
- rpc_threads参数至少为本机核心数+1,不能为1(o2下会报警)