C++项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置

今天开始想更新一个C++项目,实现一个支持跨服务器通信、支持负载均衡的集群聊天服务器项目。项目会应用muduo网络库、CMake编译、MySQL数据库、JSon序列化与反序列化、Redis消息订阅模式以及Nginx负载均衡功能。

有兴趣的宝可以跟我一起实操起来,巩固自己的C++学习吧~

一、项目介绍

本项目是在Linux环境下开发,使用CMake编译构建的基于muduo网络库开发的集群聊天服务器,通过muduo的TcpServer和TCpClient类设计服务端、客户端,使用 muduo 注册消息事件到来的回调函数,并根据得到的MSGID定位到不同的功能处理函数中,主要实现用户注册、用户登录、添加好友、添加群组、群组聊天以及保持离线消息等功能,用户数据存放于MySQL数据库中进行增删改查。

Json实现通信数据的序列化与反序列化,使用第三方库 json.hpp实现

为提高服务器的并发处理能力,可以采用升级服务器性能或增加服务器数量,考虑到机器性能总是有限的,引入Nginx的负责均衡功能将客户端请求分发到不同的服务器上分担压力。

由于采用集群服务器,有多个服务器维护用户,某一业务服务器聊天对象在自己服务器用户表发现离线,可能在别的服务器上在线,本应发送在线消息却发送离线消息,为实现跨服务器通信,服务器直接互联带宽压力大,资源占用庞大,因此引入中间件消息队列Redis,通过Redis的发布订阅消息通信模式,提高服务器的响应能力。

二、项目需求

1. 客户端新用户注册

2. 客户端用户登录

3. 添加好友和添加群组

4. 好友聊天

5. 群组聊天

6. 离线消息

7. nginx配置tcp负载均衡

8. 集群聊天系统支持客户端跨服务器通信

三、技术栈

1、Json序列化和反序列化

2、muduo网络库开发

3、nginx源码编译安装和环境部署

4、nginx的tcp负载均衡器配置

5、redis缓存服务器编程实践

6、基于发布-订阅的服务器中间件redis消息队列编程实践

7、MySQL数据库编程CMake构建编译环境

了解了项目需求与技术栈后,现在让我们一起来搭建所需环境吧~

四、环境搭建

搭建需求:

1.ubuntu linux环境

2. 安装Json开发库

3. 安装boost + muduo网络库、cmake编译开发环境,

4. 安装redis环境

5. 安装mysql数据库

6. 安装nginx

4.1 操作系统

我使用的系统为ubuntu操作系统,版本为20.04,大家可以使用命令查看自己系统的版本信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值