首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >快速NIO,异步

快速NIO,异步
EN

Stack Overflow用户
提问于 2009-07-16 13:50:45
回答 2查看 12K关注 0票数 7

这个问题上,我实际上也处于为我的一个项目找到合适的HTTP容器的阶段。我查看了几个容器,但我仍然不确定哪个容器最适合高负载AJAX请求。阿帕奇米娜看起来很有希望,但也比较复杂。名为AsyncWeb的异步web服务器实现似乎已经与Mina合并了,但我还没有找到它的任何生产关联。在另一个问题中,我推荐了简单HTTP服务器,我非常喜欢它,因为它是.嗯,简单,清楚,干净,但我仍然不知道它是否符合目的。

此外,我不确定要选择哪种请求处理概念:

  1. 为每个传入连接创建一个dispatcher Thread (当然,优化可能包括一个线程池和一个调度队列),这将完成所有的工作。优点可能是,我不需要处理那么多的同步问题,但它可能会大大降低高负载的吞吐量。
  2. 因为它将是一个高度模块化的应用程序,一种“流水线”(我想可能有一个更合适的术语;)方法也可能有效:为特定的任务创建一个固定数量的线程。例如,一个用于请求处理的->,一个用于头反序列化(如果我获得不同格式的输入,比如subtmitted、XML、JSON等),一个用于"Controller“(我想对这些数据做任何事情) ->,另一个用于以所需的格式序列化输出(JSON、XML等)。并将每个请求通过这些级别,直到它完成为止。也许更难实现,但我有固定数量的线程(这个数目也可以依赖于硬件)和清晰的关注点分离。

有任何可能适合的框架和两种不同的处理方法的经验吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-07-16 19:59:29

简单HTTP subversion存储库上有一个示例。

http://simpleweb.svn.sourceforge.net/viewvc/simpleweb/trunk/src/demo/java/org/simpleframework/example/javafx/

它演示了使用comet的实时市场数据,并且只有一个线程向任意数量的客户端发送更新。Simple有一个透明的传输层,它提供阻塞I/O语义,它的优点是使用NIO异步调度,基于每个连接客户端的固定ByteBuffer队列。因此,您可以获得一个平滑、透明的NIO输出,并具有可预测的内存消耗。另外,针对像Jetty这样的服务器的性能度量也显示了x2性能的提高。

http://simpleweb.svn.sourceforge.net/viewvc/simpleweb/trunk/application/Plotter/ApacheBench/ScalabilityApacheBench.png?revision=1448

票数 3
EN

Stack Overflow用户

发布于 2009-07-16 13:58:56

您可能想看看防波堤,特别是高潮水

Hightide预先配置了最先进的Ajax通信库,如DWR、ActiveMQ (JMS到浏览器)和Bayeux协议(也称为cometd)。在高地上部署应用程序意味着,由于Jetty的智能IO层和延续机制的结合,应用程序将顺利扩展

具体来说,已经做了很多工作来优化AJAX的Jetty。有关更多细节,请参见这个博客条目

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1137748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档