【发布时间】:2016-05-09 09:41:15
【问题描述】:
我有一个应用程序,它公开了在 WebSphere 上运行的 1 个 Web 服务。我想使用连接队列之类的东西来限制 X 可用的最大客户端。我读过“connection pool”,但它只是用于传出连接。
有什么建议吗?谢谢。
【问题讨论】:
我有一个应用程序,它公开了在 WebSphere 上运行的 1 个 Web 服务。我想使用连接队列之类的东西来限制 X 可用的最大客户端。我读过“connection pool”,但它只是用于传出连接。
有什么建议吗?谢谢。
【问题讨论】:
您可以使用以下 TCP 通道设置限制允许的最大 TCP 连接数:
最大打开连接数
您可以在此处找到如何设置: https://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/urun_chain_typetcp.html?lang=en
这将限制任何连接,而不仅仅是与您的 WebService 的连接,如果您在服务器中提供多个 WebService,这可能不是一个好的更改设置,因为它将限制与 WAS 的所有连接。
默认情况下,WAS 允许 20,000 个打开的连接。如果这是您想要服务的最大值,您可以将其限制为 1,000。
【讨论】:
我会从另一个角度来谈这个。我假设您想限制可以在应用程序服务器上处理的最大并发客户端请求?在 WebSphere 中,WebContainer 线程池是限制任何时候可以处理的并发连接数的方法。因此,如果您只想允许 10 个并发连接,则将 WebContainer 线程池最大值设置为 10。请注意,这将适用于集群中的每个集群成员,因此如果您有 10 个 JVM,那么一次将有 100 个线程可以处理.
同样需要注意的是,这将影响所有需要使用 WebContainer 线程池的应用程序。解决此问题的一种方法是仅部署服务而不部署其他应用程序。让其他应用通过适当的线程池设置获得自己的 JVM。
【讨论】: