我们有一组微服务,我想以与它们的访问方式一致的方式对其进行负载测试。
在选择Locust作为我选择的工具后,我发现 TCP 连接基础具有连接池,因为我不断看到如下消息:
WARNING/requests.packages.urllib3.connectionpool:连接池已满,丢弃连接:
据我了解,此消息告诉我它丢弃了它管理的池中的连接。我假设它仍然会创建一个新连接,并将其添加到它丢弃的那个位置。
- 那是它的作用吗?
- 它会在连接失败的情况下做到这一点吗?
我认为我们的微服务不会让任何会话保持打开状态。从远端连接到我们的服务,提供结果,然后关闭连接。因此,测试以不同于使用服务的方式处理连接。有没有办法让请求库不使用池,并且每次都完成设置和拆除通过它建立的所有连接的工作?
- 我们有什么理由不想以这种方式进行测试吗?
- 如果最好使用连接池进行测试,如果在生产中没有以这种方式进行测试,我应该如何预测负载差异?