lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Miller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-12297) Create a good SolrClient for SolrCloud paving the way for async requests, HTTP2, multiplexing, and the latest & greatest Jetty features.
Date Thu, 31 May 2018 18:50:00 GMT

    [ 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message