Skip to content

iamwsll/micro-service_based_chatroom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 

Repository files navigation

🐱 喵喵Chat - C++微服务架构即时通讯系统

C++

喵喵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

多主机部署

如果需要真正在多台主机上部署,你需要

1.配置各种服务的配置文件,使得各种服务可以在多主机间运行
2.处理dockerfile中的配置信息
3.你可能需要修改/common/utils.hpp 中uuid(),以使得生成的uuid在多台主机间具有唯一性

目录结构

server

目录 大致内容
common 用于存放公共头文件
conf 用于存储配置文件
example 项目所用的框架学习与测试代码
file 文件存储子服务的源码和测试代码
friend 好友管理子服务的源码和测试代码
gateway 网关子服务的源码和测试代码
message 消息管理子服务的源码和测试代码
odb 用于存放odb.hxx
proto 定义各个服务和前后端的proto文件
speech 用于存放odb.hxx
sql 用于存放sql文件
third 用于存放第三方库
transmit 消息转发子服务的源码和测试代码
user 用户管理子服务的源码和测试代码

备注

  1. 主机没有开启rabbitmq的自动启动
  2. rpc_threads参数至少为本机核心数+1,不能为1(o2下会报警)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages