高并发场景下,SOCKET 应用缓存模型

高并发,大数据量的SOCKET架构模型,对应数据空间锁的问题,可以使用拉的方式来处理,如发送数据,发送方提供数据的缓存空间,SOCKET 任务来取,发送完释放标记,这样就是一写多读的模型。

SOCKET 发送缓存的模型,应用任务将数据写入BUFFER中,设置标记,SOCKET任务进行发送,发送完成后,释放标记,不需要进行加锁,写任务和BUFFER 是一一对应,操作写BUFFER没有任务竞争。SOCKET任务读取,不存在锁的情况。写BUFFER时需要进行判断标记是否释放。

SOCKET接收的缓存模型要复杂些,固定缓存和动态共用缓存算法相结合,共用空间的缓存应该有锁的要求。地址空间获取多任务竞争,固定缓存没有锁,一一对应到SOCKET 或TASK上,SOCKET 和TASK的关系,有多种方式,一个TASK一个SOCKET,一个TASK处理多个SOCKET,固定缓存看对应到SOCKET上,还是TASK上,对应到SOCKET上,可以没有锁,对应到TASK上,所有SOCKET共用也一样有锁的情况。

同一BUFFER的写操作,尽量是同一个任务执行,读的操作可以是多个任务进行。

猜你喜欢

转载自blog.csdn.net/DQWKLC/article/details/122003003