如何限制 java.net.http.HttpClient 的连接
How to limit connections for java.net.http.HttpClient
如何限制 connection/request 的数量 java.net.http.HttpClient?
我知道我可以为 HttpClient 设置一个 Executor 但我不知道:如果我限制 Executor 池中的线程数,它是否也限制了连接数?
另一种限制连接数的方法?
要限制通过 HttpClient 发出的并发请求数,您必须在应用程序级别这样做。 HttpClient 是纯异步的,因此限制 HttpClient 执行程序中的线程数将不起作用。同样,限制 keep-alive 池中的连接数将不起作用,因为该池仅包含 idle 个连接。
通过使用简单的信号量保护发送请求的代码,可以很容易地限制应用程序级别的并发请求数(请参阅 java.util.concurrent.Semaphore)。限制并发请求的数量,例如10个请求,只需创建一个有10个许可的信号量,在发送请求之前获取信号量,并在响应到达时释放它。
如何限制 connection/request 的数量 java.net.http.HttpClient?
我知道我可以为 HttpClient 设置一个 Executor 但我不知道:如果我限制 Executor 池中的线程数,它是否也限制了连接数?
另一种限制连接数的方法?
要限制通过 HttpClient 发出的并发请求数,您必须在应用程序级别这样做。 HttpClient 是纯异步的,因此限制 HttpClient 执行程序中的线程数将不起作用。同样,限制 keep-alive 池中的连接数将不起作用,因为该池仅包含 idle 个连接。
通过使用简单的信号量保护发送请求的代码,可以很容易地限制应用程序级别的并发请求数(请参阅 java.util.concurrent.Semaphore)。限制并发请求的数量,例如10个请求,只需创建一个有10个许可的信号量,在发送请求之前获取信号量,并在响应到达时释放它。