问个用epoll进行网络服务器前端开发的基本问题
时间:2011-01-21
来源:互联网
这个服务器是一个中转前端,前端有很多连接,大概同时有1000左右。服务器的任务是接到这些数据,传给后台服务器处理然后再把结果给前端。
如果说前端每来一个连接都给一个线程,那当然无法可说,大不了跟后台服务器也保持几百上千个连接。但是这样的网络模型明显效率不高。
如果采用队列+worker+线程池的方式我有个基本问题不知道怎么解决。比如前端每个客户端传来的数据不一定每次都能接完,可能要接几次,那么这几次怎么串联起来呢?是用一个map结构,以连接套接字为key么?
而当收到后台回应的时候,又怎样辨别该回给哪个客户端呢?如果是每个连接一个线程那么这个线程一直或者自然知道该回给哪个客户端连接。
抱歉我思维有点混乱,毕竟没做过,就是想问问一般这种场景的网络模型和解决方案是怎样的
如果说前端每来一个连接都给一个线程,那当然无法可说,大不了跟后台服务器也保持几百上千个连接。但是这样的网络模型明显效率不高。
如果采用队列+worker+线程池的方式我有个基本问题不知道怎么解决。比如前端每个客户端传来的数据不一定每次都能接完,可能要接几次,那么这几次怎么串联起来呢?是用一个map结构,以连接套接字为key么?
而当收到后台回应的时候,又怎样辨别该回给哪个客户端呢?如果是每个连接一个线程那么这个线程一直或者自然知道该回给哪个客户端连接。
抱歉我思维有点混乱,毕竟没做过,就是想问问一般这种场景的网络模型和解决方案是怎样的
作者: Aniao 发布时间: 2011-01-21
每个客户端一般来说IP地址和端口号是不同的,只需要在映射表中找到服务端需要回答的客户端,直接转发即可,就如同一个透明管道一般,分发服务器是根据负载进行分发,而非根据语义分发,所以无需理解客户端的意图
作者: hawk198 发布时间: 2011-01-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28