免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: duanjigang
打印 上一主题 下一主题

谈谈你接触的通讯程序的模型 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2011-01-25 11:23 |显示全部楼层
呵呵,听dreamice说apache或许是用多进程负责通讯,也就是说接受到的socket能传递个子进程进行数据收发的继续,不知道这个是否真的可以,而且性能如何?
有空做个试验。
我看过下载加速器axel代码,知道它是用单进程多连接来实现通讯的,也就是说通讯是一个进程负责的。
不知道跟多进程通讯的差别在哪?
有知晓的前辈能否说两句?

论坛徽章:
0
32 [报告]
发表于 2011-01-26 22:12 |显示全部楼层
这个是我在最近打算换工作,总结以前项目的时候随便画的。

服务器主要分为两个层次:通讯层和业务处 ...
jiang1013nan 发表于 2011-01-09 23:45



    34楼的模型貌似有些复杂,呵呵。
从这个帖子的讨论中,我越发觉得数据的收和发应该分开成两个进程。
用两个线程来负责收发,一个线程负责接受连接这种做法是否为了利用公共的连接描述符??也就是说到一个主机使用的是一条连接负责数据收发,还是收发各一条连接??
另外,用epoll的话,是不是连接接受线程和数据接收线程能合并在一起了?

论坛徽章:
0
33 [报告]
发表于 2011-01-27 09:41 |显示全部楼层
epoll并没有改变传统的select或poll等处理方式。大多数模型还是一个通信控制线程,多个数据处理线 ...
CU第一菜 发表于 2011-01-27 08:57



    数据处理是独立的,是不是用进程更好些?因为它们之间没有什么需要协作的

论坛徽章:
0
34 [报告]
发表于 2011-01-27 10:06 |显示全部楼层
比如说通信请求到达,需要指派给某个具体的进程来处理,这就是相应的协作关系了。

CU第一菜 发表于 2011-01-27 09:45


这个指的是父进程把接收到的连接套接字传递给子进程继续通讯吗??
这样的话开销会不会很大?我意思通讯数据接收一个进程就够了,数据处理让多个进程来完成···

论坛徽章:
0
35 [报告]
发表于 2011-01-27 15:05 |显示全部楼层
多谢江总分享,还没看apache的代码,看这个图暂时没啥深切体会,只是觉得跟我目前做的模型很像:wink:

论坛徽章:
0
36 [报告]
发表于 2011-01-27 16:58 |显示全部楼层
apache的业务处理相对单一,只针对http,且http本身无状态的特性。
如果是多业务复杂的进程池处 ...
执一 发表于 2011-01-27 16:13



    嗯,对对对,刚才在QQ跟dreamice就聊到这个了,对于未知业务的数据通讯,这样做是不行的

论坛徽章:
0
37 [报告]
发表于 2012-10-07 14:08 |显示全部楼层
再温习下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP