[jira] [Commented] (SOLR-12297) Add Http2SolrClient, capable of HTTP/1.1, HTTP/2, and asynchronous requests.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (SOLR-12297) Add Http2SolrClient, capable of HTTP/1.1, HTTP/2, and asynchronous requests.

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/SOLR-12297?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16539770#comment-16539770 ]

Cao Manh Dat commented on SOLR-12297:

I attached a *draft* patch for this ticket, changes compare to Mark's patch include
* Minimal changes for JettySolrRunner
* In case of *https*, only http/1.1 will be supported (until we upgrade to jdk 9 or find a better way for handling ALPN)
* In case of *http*, HTTP/1.1 and HTTP2 (h2c) will be supported via http2 upgrade header
* Setting default {{SslContextFactory}} for {{Http2SolrClient}}
* Remove {{Http2SolrClient.makeResponse()}} (the method is buggy in counting the time has passed and also lead to many different chance of other SolrRequest classes)
* Remove the replacement of HttpSolrClient by Http2SolrClient

I'm thinking about an easier/more convenient solution for above last item. Ie : making HttpSolrClient and Http2SolrClient swap-able.

> Add Http2SolrClient, capable of HTTP/1.1, HTTP/2, and asynchronous requests.
> ----------------------------------------------------------------------------
>                 Key: SOLR-12297
>                 URL: https://issues.apache.org/jira/browse/SOLR-12297
>             Project: Solr
>          Issue Type: New Feature
>      Security Level: Public(Default Security Level. Issues are Public)
>            Reporter: Mark Miller
>            Assignee: Mark Miller
>            Priority: Major
>         Attachments: SOLR-12297.patch, starburst-ivy-fixes.patch
> Blocking or async support as well as HTTP2 compatible with multiplexing.
> Once it supports enough and is stable, replace internal usage, allowing async, and eventually move to HTTP2 connector and allow multiplexing. Could support HTTP1.1 and HTTP2 on different ports depending on state of the world then.
> The goal of the client itself is to work against HTTP1.1 or HTTP2 with minimal or no code path differences and the same for async requests (should initially work for both 1.1 and 2 and share majority of code).
> The client should also be able to replace HttpSolrClient and plug into the other clients the same way.
> I doubt it would make sense to keep ConcurrentUpdateSolrClient eventually though.
> I evaluated some clients and while there are a few options, I went with Jetty's HttpClient. It's more mature than Apache HttpClient's support (in 5 beta) and we would have to update to a new API for Apache HttpClient anyway.
> Meanwhile, the Jetty guys have been very supportive of helping Solr with any issues and I like having the client and server from the same project.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]