java - Fast NIO,Java 异步 HTTP 服务器

标签 java http asynchronous

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7年前关闭。




Improve this question




关注 this question实际上,我也正处于为我的一个项目寻找合适的 HTTP 容器的阶段。我查看了几个容器,但我仍然不确定哪一个最适合高负载 AJAX 请求。 Apache Mina看起来很有前途,但也相对复杂。名为 AsyncWeb 的异步 Web 服务器实现似乎已与 Mina 合并,但我还找不到它的任何生产版本。在另一个问题中,我推荐了 Simple HTTP我非常喜欢的服务器,因为它...非常简单、清晰和干净,但我仍然不知道它是否符合目的。

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

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

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

    最佳答案

    你可能想看看 Jetty ,尤其是 Hightide

    Hightide is pre-configured with state-of-the-art Ajax communication libraries such as DWR, ActiveMQ-Web (JMS to the browser), and the Bayeux protocol (also known as cometd). Deploying your applications on Hightide means that it will scale smoothly thanks to a combination of Jetty's smart IO layer and continuations mechanism



    具体来说,已经投入了大量工作来为 AJAX 优化 Jetty。见 this blog entry更多细节

    关于java - Fast NIO,Java 异步 HTTP 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137748/

    相关文章:

    java - 如何使用 Apache POI XSSF Excel 的 IndexedColors 中没有的颜色?

    HTTP 空 header

    linux - 阻止 apache 将基本身份验证 header 转发到反向代理 tomcat 站点

    javascript - 为什么这个带有简单异步回调的测试用例(Jest)会失败?

    javascript - 在继续之前需要 FineUploader 方法 uploadStoredFiles 完成

    c# - 我如何强制等待在同一线程上继续?

    java.lang.UnsupportedClassVersionError :

    java - 在 for 循环结束后,分配给 for 循环内的 Java 列表的值将被替换为相同的对象(索引 0 处的对象)

    http - 无法加载样式表

    java - ORM 使用什么来访问数据库