Skip to content

Commit

Permalink
Merge pull request kubernetes#11759 from bprashanth/flushing_proxy
Browse files Browse the repository at this point in the history
Periodically flush the reverse proxy
  • Loading branch information
vishh committed Jul 24, 2015
2 parents e35ee9b + 8c27609 commit 7017f5d
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion pkg/kubectl/proxy_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"net/url"
"regexp"
"strings"
"time"

"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
"github.com/golang/glog"
Expand All @@ -36,6 +37,16 @@ const (
DefaultMethodRejectRE = "POST,PUT,PATCH"
)

var (
// The reverse proxy will periodically flush the io writer at this frequency.
// Only matters for long poll connections like the one used to watch. With an
// interval of 0 the reverse proxy will buffer content sent on any connection
// with transfer-encoding=chunked.
// TODO: Flush after each chunk so the client doesn't suffer a 100ms latency per
// watch event.
ReverseProxyFlushInterval = 100 * time.Millisecond
)

// FilterServer rejects requests which don't match one of the specified regular expressions
type FilterServer struct {
// Only paths that match this regexp will be accepted
Expand Down Expand Up @@ -171,7 +182,7 @@ func newProxy(target *url.URL) *httputil.ReverseProxy {
req.URL.Host = target.Host
req.URL.Path = singleJoiningSlash(target.Path, req.URL.Path)
}
return &httputil.ReverseProxy{Director: director}
return &httputil.ReverseProxy{Director: director, FlushInterval: ReverseProxyFlushInterval}
}

func newFileHandler(prefix, base string) http.Handler {
Expand Down

0 comments on commit 7017f5d

Please sign in to comment.