当前位置: 技术问答>linux和unix
高性能网络服务程序架构的一点困惑(请高手多提点意见)
来源: 互联网 发布时间:2016-02-25
本文导语: 题目可能太大了,其实我正在思考的是在哪种情况下,采用什么方式的网络架构比较合适。 我认为基本的架构有: 单进程(单线程处理)、单进程(多线程)、多进程(每个进程是单线程)、多进程(每个进程是...
题目可能太大了,其实我正在思考的是在哪种情况下,采用什么方式的网络架构比较合适。
我认为基本的架构有: 单进程(单线程处理)、单进程(多线程)、多进程(每个进程是单线程)、多进程(每个进程是多线程)。
在网上看到一篇帖子,说apache是采用的上面第4中模式(现在还没有机会去看源码),我想不明白的是, web服务肯定只能指定一个监听端口,而多个进程肯定不能同时监听同一个端口,那么多进程的应用会是什么场景呢?
我认为基本的架构有: 单进程(单线程处理)、单进程(多线程)、多进程(每个进程是单线程)、多进程(每个进程是多线程)。
在网上看到一篇帖子,说apache是采用的上面第4中模式(现在还没有机会去看源码),我想不明白的是, web服务肯定只能指定一个监听端口,而多个进程肯定不能同时监听同一个端口,那么多进程的应用会是什么场景呢?
|
队列处理..
比如:
进程1 负责监听 将获得的连接放入 队列 1,
进程2 负责查看 队列里的 连接是否有 可读 的数据, 如果有, 将数据读出, 放入队列 2.
进程3,4,5... 从 队列2中 取出数据来处理(因为数据处理会花比较多的时间, 所以由多个进程来处理) ,
将处理过的数据 放入 发送队列 3.
进程6 负责从队列3中取出处理过的数据 ,并回复给相应的客户端.
比如:
进程1 负责监听 将获得的连接放入 队列 1,
进程2 负责查看 队列里的 连接是否有 可读 的数据, 如果有, 将数据读出, 放入队列 2.
进程3,4,5... 从 队列2中 取出数据来处理(因为数据处理会花比较多的时间, 所以由多个进程来处理) ,
将处理过的数据 放入 发送队列 3.
进程6 负责从队列3中取出处理过的数据 ,并回复给相应的客户端.
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。