【问题标题】:Application Server : Limit the number of concurrent client connections应用服务器:限制并发客户端连接数
【发布时间】:2014-01-22 10:52:34
【问题描述】:

是否有一个应用程序服务器,我可以在其中设置已定义的最大并发客户端连接数? 也不应将任何连接排队。

【问题讨论】:

  • 请记住,应用服务器为不同类型的客户端提供服务,Web 容器和 ejb 容器可以定义自己的限制。你对哪一个感兴趣?

标签: jakarta-ee application-server


【解决方案1】:

几乎每个应用程序服务器都具有与您想要的功能相似的功能。

在 Glassfish 中,您可以使用所谓的 Connection Pooling,它几乎可以满足您的需求。它将并发客户端连接的数量限制为连接池的大小。通常它会将超出限制的请求排队,但您也可以禁用排队(或者如果不可能将其设置为 1)。

这里是详细信息的链接:GlassFish Tuning - HTTP Connection Queue & Keep Alive

在 Tomcat 中,您有一个名为 maxConnections 的选项,它完全符合您的要求,但请注意 Tomcat 不是 Java EE 应用程序服务器(您可以查看 TomEE)。

这里是一些 Tomcat 信息的链接:Tomcat HTTP Connector Configuration Attributes

在 JBoss 中也有类似的东西,您可以选择 maxThreads,这实际上与最大连接数相同。

这里是一些关于 JBoss 的信息:JBoss HTTP Connector Configuration Parameters

【讨论】:

  • 试过#asadmin server.http-service.connection-pool.max-pending-count = 1 |导致命令集失败异常。好像我无法访问任何 connection-pool 设置。
  • 你必须像这样使用它:asadmin set server.http-service.connection-pool.max-pending-count=1
  • 也许我应该更具体 - 确切的例外是“找不到 server.http-service.connection-pool.max-pending-count 的配置” - 我是否必须创建或启用连接池第一?
  • 你不必创造一些东西。您也可以使用 Glassfish 管理 GUI 对其进行配置。
  • 对不起。我在 glassfish 管理 GUI 中也找不到任何关于连接池的信息,这可能解释了“找不到配置”异常。
猜你喜欢
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多