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

Mark Miller commented on SOLR-12297:
------------------------------------

It's a unified client, not sure what that references.

Jetty HttpClient was originally just HTTP/1.1 and still can be, that is how I 
first configured it and I left in the code to do it - it existed before there 
was any Jetty client side support for HTTP/2. For HTTP/2 there is actually a 
new lower level HTTP/2 client, but conveniently and unusual in the world of 
HTTP Java clients, the high level original Jetty HttpClient can do Async, 
HTTP/1.1, and HTTP/2 with the same API. Most other HTTP clients require using 
different client API's depending on which of those you want.

So using the Jetty HttpClient without HTTP/2 is as easy as flipping the code 
path in Http2SolrClient to 1.1 support.

We also can use the ALPN support to negotiate protocols on a single connector - 
which means we will be able to serve HTTP/1.1 and HTTP/2 on the same port 
depending on the clients capabilities.

> Create a good SolrClient for SolrCloud paving the way for async requests, 
> HTTP2, multiplexing, and the latest & greatest Jetty features.
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 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
>
> 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
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to