Java 多个POST请求占用内存(htop)
我会尽量简明扼要。我有一个程序可以:Java 多个POST请求占用内存(htop),java,ubuntu,memory,rabbitmq,httpurlconnection,Java,Ubuntu,Memory,Rabbitmq,Httpurlconnection,我会尽量简明扼要。我有一个程序可以: 使用来自RabbitMQ服务器的JSON字符串消息 提取重要字段并将它们放入另一个JSON(不同的结构)中。我使用的是Jackson解析器中的POJO模型 通过HTTP POST请求将它们发送到服务器。使用HttpUrlConnection(每条消息一个连接)和DataOutputStream#write(字节[]) 我有3个使用者(3个线程,每个线程使用一个不同的队列)执行这3个步骤,效果很好。然而,我收到的消息量非常大(一小时内500条消息),而且请求似
如何控制使用的驻留内存?我能做些什么来控制大量的POST请求吗?如何维护一个
HttpURLConnection
池,而不是为每条消息创建一个新池?这并不是真正的资源泄漏,因为GC能够回收连接使用的所有mem,只是没有达到最佳设计……好吧,我没有将它们集中起来,因为:“每个HttpURLConnection实例用于发出单个请求,但与HTTP服务器的底层网络连接可能会被其他实例透明地共享。在请求后对HttpURLConnection的InputStream或OutputStream调用close()方法可能会释放与此实例关联的网络资源,但对任何共享的持久连接都没有影响。如果一个持久连接当时处于空闲状态,调用disconnect()方法可能会关闭底层套接字。”。是这样吗?也许我误解了。