gpt4 book ai didi

blazeds - 具有 Servlet 3 的较新 Web 容器可以扩展 BlazeDS 最大并发用户数吗?

转载 作者:行者123 更新时间:2023-12-02 21:25:47 27 4
gpt4 key购买 nike

BlazeDS 是作为 servlet 实现的,因此仅限于大约数百个同时用户。

我想知道支持 Servlet 3 的最新 Web 容器(Tomcat 7、GlassFish/Grizzly、Jetty 等)是否可以用于创建 NIO 端点,以将并发用户数量增加到数千?

这是一个有效且实用的解决方案吗?有人在生产中这样做过吗?

类似于此的成熟版本:http://flex.sys-con.com/node/720304如果这在当时非常重要,那么为什么现在(当 Servlet 3 广泛可用时)没有人尝试实现 NIO 端点呢? (注意,我是这里的新手,所以如果我遗漏了什么,请随时指出明显的内容)

蔚来受益:http://www.javalobby.org/java/forums/t92965.html

如果不是,负载均衡器和多个应用程序服务器(每个服务器都有一个 BlazeDS 实例)是否是推荐的解决方案(除了使用 LCDS 等)?

最佳答案

GraniteDS 和异步 Servlet

据我所知,GraniteDS 是唯一实现实时消息传递异步 servlet 的解决方案,即。数据推送。此功能不仅适用于 Servlet 3 容器(Tomcat 7、JBoss 7、Jetty 8、GlassFish 3 等),还适用于较旧的容器或具有特定异步支持的其他容器(例如 Tomcat 6/CometProcessor、WebLogic 9+/AbstractAsyncServlet)等)

其他解决方案没有此功能 (BlazeDS) 或使用 RTMP(LCDS、WebORB 和 Clear Toolkit 的最新版本)。关于 RTMP 实现我不能说太多,但 BlazeDS 显然缺少可扩展的实时消息传递实现,因为它仅使用同步 servlet 模型。

如果您需要处理数千个并发用户,您甚至可以创建 GraniteDS 服务器集群,以进一步提高可扩展性和稳健性(例如,请参阅 this video)。

异步 Servlet 性能

异步 ​​servlet 与传统 servlet 的可扩展性已经进行了多次基准测试,并给出了令人印象深刻的结果。例如,参见this post在 Jetty 博客上:

With a non NIO or non Continuation based server, this would require around 11,000 threads to handle 10,000 simultaneous users. Jetty handles this number of connections with only 250 threads.

经典同步模型:

  • 10,000 个并发用户 -> 11,000 个服务器线程。
  • 1.1 比率。

Comet异步模型:

  • 10,000 个并发用户 -> 250 个服务器线程。
  • 0.025 比率。

从其他异步实现(不是 Jetty)中可以大致预期这种比率,并且使用 Flex/AMF3 而不是纯文本 HTTP 请求不会改变太多结果。

为什么使用异步 Servlet?

当立即处理每个请求时,经典(同步)servlet 模型是可以接受的:

    request -> immediate processing -> response

数据推送的问题在于,HTTP 协议(protocol)不存在真正的“数据推送”:服务器无法向客户端发起调用来发送数据,它必须应答请求。这就是 Comet 实现依赖于不同模型的原因:

    request -> wait for available data -> response

通过同步 servlet 处理,每个请求都由一个专用服务器线程处理。然而,在数据推送处理的上下文中,该线程大部分时间只是等待可用数据,什么也不做,同时消耗大量服务器资源。

异步处理的全部目的是让 servlet 容器使用这些(通常)空闲线程来处理其他传入请求,这就是为什么当您的应用程序需要实时消息传递功能时,您可以期待可伸缩性方面的显着改进.

您可以在网络上找到许多其他资源来解释此机制,只需 google 一下 Comet 即可。

关于blazeds - 具有 Servlet 3 的较新 Web 容器可以扩展 BlazeDS 最大并发用户数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9121316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com