Package httpproxy implements etcd httpproxy. The etcd proxy acts as a reverse http proxy forwarding client requests to active etcd cluster members, and does not participate in consensus.
Internal call graph ▹
Internal call graph ▾
In the call graph viewer below, each node is a function belonging to this package and its children are the functions it calls—perhaps dynamically.
The root nodes are the entry points of the package: functions that may be called from outside the package. There may be non-exported or anonymous functions among them if they are called dynamically from another package.
Click a node to visit that function's source code.
From there you can visit its callers by
clicking its declaring
Functions may be omitted if they were determined to be unreachable in the particular programs or tests that were analyzed.
const ( // DefaultMaxIdleConnsPerHost indicates the default maximum idle connection // count maintained between proxy and each member. We set it to 128 to // let proxy handle 128 concurrent requests in long term smoothly. // If the number of concurrent requests is bigger than this value, // proxy needs to create one new connection when handling each request in // the delta, which is bad because the creation consumes resource and // may eat up ephemeral ports. DefaultMaxIdleConnsPerHost = 128 )
func NewHandler ¶
func NewHandler(t *http.Transport, urlsFunc GetProxyURLs, failureWait time.Duration, refreshInterval time.Duration) http.Handler
NewHandler creates a new HTTP handler, listening on the given transport, which will proxy requests to an etcd cluster. The handler will periodically update its view of the cluster.
func NewReadonlyHandler ¶
func NewReadonlyHandler(hdlr http.Handler) http.Handler
NewReadonlyHandler wraps the given HTTP handler to allow only GET requests
type GetProxyURLs ¶
GetProxyURLs is a function which should return the current set of URLs to which client requests should be proxied. This function will be queried periodically by the proxy Handler to refresh the set of available backends.
type GetProxyURLs func() string