0
点赞
收藏
分享

微信扫一扫

C/C++项目实战:高性能社交平台(SPP2)


高性能社交平台

  • ​​项目简述​​
  • ​​性能采集​​
  • ​​后期构思​​

前言:要和​​C/C++​​​短暂地说再见啦,暂时用不到了,等几个月后我再来重回辉煌,这个项目就权且作为我的一个收官之作吧,也不算辜负这两年的​​C/C++​​学习了。

​Github repository​​​:​​SSP-0.2​​

项目简述

基于均衡模型的C/S架构。

在前端,客户端采用​​QtCreator​​​,客户端和服务器使用消息机制进行通信,并采用​​protobuf​​协议进行收发包。

在服务器方面,采取​​epoll​​​的​​io​​​多路复用的主从反应堆,运用​​one thread one loop​​​的模式接收消息,对客户端数据传输使用​​protobuf​​协议进行封包和解包。同时在消息交互和刷新模块,分别采用批处理时间线和快照的方式进行刷新消息。

基于此,事件处理分为​​UserManager​​​、​​RelationManager​​​、​​MessageManager​​​、​​PhotoManager​​​四个模块,并采用​​protobuf​​​进行数据压缩和数据库进行数据交互,本着多进程的优化策略,使用​​Linux​​​原生共享内存(​​shared memory​​)的方法缓解程序压力,提高并发。(环形队列也已经写好,打算用上)

同时,数据库模块,主要使用​​mysql​​​关系型数据库(后期考虑采用​​key-value​​​数据库),使用​​protobuf​​协议对数据进行压缩和便捷了字段名更改,不仅在后端传输数据的时候压缩了数据,节省了带宽,而且在存储数据时用十六进制进行存储也极大的节省了存储空间。

性能采集

从计算能力、存储能力、网络传输能力和IO传输能力四个方面来测评。

后期构思
  • 完善前端应用
  • 引入​​libevent​​第三方库,促进项目结构更加模块化
  • 对共享内存划分更多的内存块,促进服务器交叉、平行的接收流量,提高并发
  • 存储在内存中的数据使用​​map​​​,同时数据存储考虑使用​​key-value​​数据库

新的一年,好好学习,好好休息。


举报

相关推荐

0 条评论