高性能社交平台
- 项目简述
- 性能采集
- 后期构思
前言:要和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
数据库
新的一年,好好学习,好好休息。