Apache Common Pool

时间:2017-05-03 00:01:43

标签: java apache sockets tcp pool

如何使用Apache公共池来池化TCP连接并重用连接?

为了实现TCP连接池,我尝试使用Apache公共池(1.6),我使用https://javaarchitectforum.com/tag/apache-common-object-pool-example/中发布的对象池来实现它。

我确实希望在启动与另一台服务器的连接时看到持久的TCP连接,并将其重新用于其他后续连接请求。

问题是,我看不到与服务器的任何持久连接(netstat -an)。通过借用对象,建立新的连接,当返回对象时,套接字被断开。没有汇集!

我使用正确的方法创建TCP池吗?

1 个答案:

答案 0 :(得分:2)

问题已解决。

解决问题的两项修正案:

  1. 返回对象时,不应关闭DataOutputStream。
  2. clientSocket应该在makeObject()[clientSocket.setKeepAlive(true)]上保持活动状态。
  3. 结果连接被持久化并重用于下一个请求。