开发Web服务器有哪些不同的方法?所以我想有(1)多线程(2)事件循环,还有什么?每种方法的优缺点是什么?你什么时候使用每个?你能列出每个方案的特定impl吗?开发Web服务器有哪些不同的方法?
3
A
回答
0
你应该添加非阻塞I/O。看看Netty。
4
不同的方法可以是:
单线程:所有连接都通过单个线程 “监听”并等待连接和流程requests.It 很容易实现,但它是处理最没用的服务器,因为它可以 一次只能
多线程服务请求:服务器监听请求和每个传入 请求被分配到一个新的线程来处理it.So每个客户 连接由其专用线程处理。这种方法(不像 1)支持客户端请求的并发处理,但不 规模以及因为每个新创建的请求在服务器 一个新的线程,这需要很多resources.Eventually的服务器将达到一个极限
多线程池:与(2)相同,但不是创建新的线程来处理每个传入的请求,而是使用线程池 中的线程。线程被创建并放置在一个池中用于以后的重用。这种扩展能够很好地支持多个客户端请求,并且它是标准的方法。 Tomcat是这样工作的。
事件队列:每个传入的请求被放入一个队列中,并由后台线程处理,后台线程处理队列的请求。它是 非阻塞,这种类型的异步处理也很好地规模为 。老实说,我不知道它是否比(3)在 performance(3)好。我认为可以使用 NIO体系结构
0
一些服务器,例如G-WAN混合多线程,池和事件队列,让服务器饱和CPU内核与每个线程处理许多连接。
Disclamer:我参与了这个项目的开发。
相关问题
- 1. PHP/MySQL Web开发人员应该知道哪些服务器?
- 2. 从哪里开始Web服务开发?
- 3. ASP.NET Web开发服务器
- 4. 您发现哪些Web开发浏览器插件有用?
- 5. ASP.NET - 哪些文件存储xml Web服务的方法签名?
- 6. Web服务开发
- 7. 开源REST Web服务技术有哪些优点?
- 8. 要使用哪种? Visual Studio开发服务器或本地IIS Web服务器?
- 9. 的WebPack开发服务器+高速Web服务器
- 10. 开发Web服务器上的基本Subversion服务器问题
- 11. 肥皂web服务与Apache骆驼集成的方法有哪些举例
- 12. 如何从Web服务器开始开发短信服务?
- 13. 哪个rails服务器用于开发?
- 14. 错误运行开发Web服务器
- 15. 有没有一种简单的方法来处理iPhone开发的Web服务?
- 16. 要试验哪个XMPP服务器开发服务器组件
- 17. 客户 - 服务器开发人员在理解Web应用程序/开发时面临哪些障碍?
- 18. 网页与服务器通信的方式有哪些?
- 19. 永久运行服务器端脚本的方式有哪些?
- 20. 开发一个web服务
- 21. 开发Coldfusion Web服务
- 22. Windows服务.NET中有哪些不同的配置文件?
- 23. 发布eclipse创建的Web服务需要哪些文件?
- 24. 无法启动已配置的Visual Studio开发Web服务器
- 25. Eclipse Web开发插件与远程服务器同步
- 26. CSS在Web服务器上的呈现方式与在开发环境中的呈现方式不同
- 27. 无法转发到Ubuntu Web服务器
- 28. 从服务器拨打电话 - 有哪些服务?
- 29. 开发Web服务可能带来的一些陷阱/提示
- 30. 颠覆集成web服务器的web开发
(通常)event-loop和nio会聚在一起... – DuduAlul 2012-02-04 17:46:23