Oh ok Walter. 
For the moment, we too cannot update to cloudsolrclient, and we are trying to 
find a way to resume the connections for now, and later work on the code 
cleanup. Thanks

> On 30 Jun 2021, at 12:49 AM, Walter Underwood <wun...@wunderwood.org> wrote:
> 
> CloudSolrClient is not an absolute requirement for a Solr Cloud cluster. 
> 
> We use regular HTTPSolrClient sending all requests to the load balancer.
> Actually, we use a separate load balancer for indexing, to keep the monitoring
> separate and to set different timeouts than for queries.
> 
> This setup is simple and fast. With our biggest cluster, we index about a 
> half million documents per minute.
> 
> wunder
> Walter Underwood
> wun...@wunderwood.org
> http://observer.wunderwood.org/  (my blog)
> 
>> On Jun 29, 2021, at 9:37 AM, Reej Nayagam <reej...@gmail.com> wrote:
>> 
>> Thanks Shawn & Vicenzo. Will check it out and change accordingly. Thanks
>> again Shawn for your clear explanation.
>> 
>> Regards
>> Reej
>> 
>> 
>> On Tue, 29 Jun 2021 at 9:47 PM, Vincenzo D'Amore <v.dam...@gmail.com> wrote:
>> 
>>> Right, you should always use CloudSolrClient as a singleton.
>>> To be honest I'm used to reuse a CloudSolrClient instance for each
>>> collection/index.
>>> 
>>> On Tue, Jun 29, 2021 at 3:12 PM Shawn Heisey <apa...@elyograg.org> wrote:
>>> 
>>>> On 6/29/2021 6:43 AM, Reej Nayagam wrote:
>>>>> Hi Vincenzo Yes we are using cloud and initial solr version was 4.10.4
>>>>> and we upgraded the jars alone to 8.8.2 now in the application side
>>>>> connecting to solr Server to fix some vulnerability. As we have
>>>>> upgraded the jars we changed httpsolrserver connection to
>>>>> httpsolrclient and we guess there is some connection leak and wanted
>>>>> to check if we need to close it or it is being handled internally.
>>>>> Singleton not sure if I can use as the base URL changes depending on
>>>>> the leader.
>>>> 
>>>> If you're running SolrCloud, you should be using CloudSolrClient, not
>>>> HttpSolrClient.  The cloud client talks to zookeeper, so it is always
>>>> aware of the cluster state -- it will be aware of down servers and new
>>>> servers, without recreating or reinitializing the client.  And it will
>>>> be aware of changes instantly -- because that information is coordinated
>>>> in zookeeper.
>>>> 
>>>> You can use a single client object for multiple collections.  All of the
>>>> methods that execute requests should have a version where you can pass
>>>> it the name of the collection/core you want to operate on. For
>>>> CloudSolrClient, you point it at all your ZK servers and it figures out
>>>> the Solr server URLs  from the clusterstate in ZK.  For HttpSolrClient,
>>>> you just leave the collection name off of the base URL --
>>>> "http://server.example.com:8983/solr"; is an example URL.
>>>> 
>>>> As was mentioned, you should create a client during program startup and
>>>> then use it to handle all requests for the life of the program. It
>>>> should manage connections and close them after receiving data, with no
>>>> coding needed from the developer (you).  If you close a SolrClient
>>>> object, it will not function after that.  If you're having connections
>>>> stay open, then either you're running a Solr or SolrJ version with bugs,
>>>> or there is something wrong with your networking.
>>>> 
>>>> It shouldn't be necessary to ever close a SolrClient object, unless you
>>>> create a new one every time your program talks to Solr.   Which you
>>>> shouldn't do.
>>>> 
>>>> 
>>>> Thanks,
>>>> Shawn
>>>> 
>>>> 
>>> 
>>> --
>>> Vincenzo D'Amore
>>> 
>> -- 
>> *Thanks,*
>> *Reej*
> 

Reply via email to