nghttpx: Pin HTTP/2 upstream to one Http2Session to improve performance
This commit is contained in:
parent
6039bacb1b
commit
d34095cf49
|
@ -363,6 +363,7 @@ ClientHandler::ClientHandler(Worker *worker, int fd, SSL *ssl,
|
||||||
get_config()->write_burst, get_config()->read_rate,
|
get_config()->write_burst, get_config()->read_rate,
|
||||||
get_config()->read_burst, writecb, readcb, timeoutcb, this),
|
get_config()->read_burst, writecb, readcb, timeoutcb, this),
|
||||||
ipaddr_(ipaddr), port_(port), worker_(worker),
|
ipaddr_(ipaddr), port_(port), worker_(worker),
|
||||||
|
http2session_(worker_->next_http2_session()),
|
||||||
left_connhd_len_(NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN),
|
left_connhd_len_(NGHTTP2_CLIENT_CONNECTION_PREFACE_LEN),
|
||||||
should_close_after_write_(false) {
|
should_close_after_write_(false) {
|
||||||
|
|
||||||
|
@ -608,10 +609,9 @@ ClientHandler::get_downstream_connection() {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto dconn_pool = worker_->get_dconn_pool();
|
auto dconn_pool = worker_->get_dconn_pool();
|
||||||
auto http2session = worker_->next_http2_session();
|
|
||||||
|
|
||||||
if (http2session) {
|
if (http2session_) {
|
||||||
dconn = make_unique<Http2DownstreamConnection>(dconn_pool, http2session);
|
dconn = make_unique<Http2DownstreamConnection>(dconn_pool, http2session_);
|
||||||
} else {
|
} else {
|
||||||
dconn = make_unique<HttpDownstreamConnection>(dconn_pool, conn_.loop);
|
dconn = make_unique<HttpDownstreamConnection>(dconn_pool, conn_.loop);
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,6 +139,7 @@ private:
|
||||||
std::function<int(ClientHandler &)> read_, write_;
|
std::function<int(ClientHandler &)> read_, write_;
|
||||||
std::function<int(ClientHandler &)> on_read_, on_write_;
|
std::function<int(ClientHandler &)> on_read_, on_write_;
|
||||||
Worker *worker_;
|
Worker *worker_;
|
||||||
|
Http2Session *http2session_;
|
||||||
// The number of bytes of HTTP/2 client connection header to read
|
// The number of bytes of HTTP/2 client connection header to read
|
||||||
size_t left_connhd_len_;
|
size_t left_connhd_len_;
|
||||||
bool should_close_after_write_;
|
bool should_close_after_write_;
|
||||||
|
|
Loading…
Reference in New Issue