Justin Larrabee created THRIFT-3405:
---------------------------------------

             Summary: Go THttpClient misuses http.Client objects
                 Key: THRIFT-3405
                 URL: https://issues.apache.org/jira/browse/THRIFT-3405
             Project: Thrift
          Issue Type: Improvement
          Components: Go - Library
    Affects Versions: 0.9.3
         Environment: Any
            Reporter: Justin Larrabee


THttpClient:Flush creates an http.Client object every time it is called. From 
the Go docs regarding the use of these client objects:

"Clients and Transports are safe for concurrent use by multiple goroutines and 
for efficiency should only be created once and re-used."

I suggest that the client used by the THttpTransport default to using either 
the http.DefaultClient or a package scoped default client. The transport should 
also accept a http.Client as an optional parameter so users of the library are 
free to control this behavior.

With the current implementation I have run into issues when spinning up ~1000 
separate instances of the THttpClient for a load test application I have 
written. Switching to using a single shared http client resolved all connection 
issues I had.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to