Class HttpShardHandlerFactory
java.lang.Object
org.apache.solr.handler.component.ShardHandlerFactory
org.apache.solr.handler.component.HttpShardHandlerFactory
- All Implemented Interfaces:
AutoCloseable,SolrMetricProducer,PluginInfoInitialized
- Direct Known Subclasses:
ParallelHttpShardHandlerFactory
public class HttpShardHandlerFactory
extends ShardHandlerFactory
implements PluginInfoInitialized, SolrMetricProducer
Creates
HttpShardHandler instances-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ExecutorServiceprotected HttpJettySolrClientprotected InstrumentedHttpListenerFactoryprotected org.apache.solr.client.solrj.impl.LBAsyncSolrClientprotected final RandomFields inherited from class org.apache.solr.handler.component.ShardHandlerFactory
DEFAULT_SHARDHANDLER_INFOFields inherited from interface org.apache.solr.metrics.SolrMetricProducer
CATEGORY_ATTR, HANDLER_ATTR, NAME_ATTR, OPERATION_ATTR, PLUGIN_NAME_ATTR, RESULT_ATTR, TYPE_ATTR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuildURLList(String shard) Creates a list of urls for the given shard.voidclose()Implementations should always callSolrMetricProducer.super.close()to ensure that metrics with the same life-cycle as this component are properly unregistered.org.apache.solr.client.solrj.SolrClientprotected <T> TgetParameter(org.apache.solr.common.util.NamedList<?> initArgs, String configKey, T defaultValue, StringBuilder sb) protected org.apache.solr.client.solrj.routing.ReplicaListTransformerGetShardHandlerthat uses the default http client.Implementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, Attributes)to ensure proper cleanup of metrics at the end of the life-cycle of this component.voidinit(PluginInfo info) CustomizesHttpShardHandlerinstances that will be produced by this factory.voidinitializeMetrics(SolrMetricsContext parentContext, io.opentelemetry.api.common.Attributes attributes) Implementation should initialize all metrics to aSolrMetricsContextRegistry/MeterProvider withAttributesas the common set of attributes that will be attached to every metric that is initialized for that class/componentprotected org.apache.solr.client.solrj.impl.LBSolrClient.ReqnewLBHttpSolrClientReq(org.apache.solr.client.solrj.request.QueryRequest req, List<String> urls) voidsetSecurityBuilder(HttpClientBuilderPlugin clientBuilderPlugin) Methods inherited from class org.apache.solr.handler.component.ShardHandlerFactory
newInstance
-
Field Details
-
commExecutor
-
defaultClient
-
httpListenerFactory
-
loadbalancer
protected org.apache.solr.client.solrj.impl.LBAsyncSolrClient loadbalancer -
r
-
-
Constructor Details
-
HttpShardHandlerFactory
public HttpShardHandlerFactory()
-
-
Method Details
-
getShardHandler
GetShardHandlerthat uses the default http client.- Specified by:
getShardHandlerin classShardHandlerFactory
-
init
CustomizesHttpShardHandlerinstances that will be produced by this factory.Supports the following parameters in
info:- socketTimeout - read timeout for requests, in milliseconds.
- connTimeout - connection timeout for requests, in milliseconds.
- urlScheme - "http" or "https"
- maxConnectionsPerHost - caps the number of concurrent connections per host
- corePoolSize - the initial size of the thread pool used to service requests
- maximumPoolSize - the maximum size of the thread pool used to service requests.
- maxThreadIdleTime - the amount of time (in seconds) that thread pool entries may sit idle before being killed
- sizeOfQueue - the size of the queue (if any) used by the thread pool that services shard-handler requests
- fairnessPolicy - true if the thread pool should prioritize fairness over throughput, false otherwise
- replicaRouting - a NamedList of preferences used to select the order in which replicas for a shard will be used by created ShardHandlers
- Specified by:
initin interfacePluginInfoInitialized- Parameters:
info- configuration for the created factory, typically reflecting the contents of a <shardHandlerFactory> XML tag from solr.xml or solrconfig.xml
-
setSecurityBuilder
- Overrides:
setSecurityBuilderin classShardHandlerFactory
-
getParameter
protected <T> T getParameter(org.apache.solr.common.util.NamedList<?> initArgs, String configKey, T defaultValue, StringBuilder sb) -
close
public void close()Description copied from interface:SolrMetricProducerImplementations should always callSolrMetricProducer.super.close()to ensure that metrics with the same life-cycle as this component are properly unregistered. This prevents obscure memory leaks.from: https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html While this interface method is declared to throw Exception, implementers are strongly encouraged to declare concrete implementations of the close method to throw more specific exceptions, or to throw no exception at all if the close operation cannot fail.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSolrMetricProducer- Specified by:
closein classShardHandlerFactory
-
getSolrMetricsContext
Description copied from interface:SolrMetricProducerImplementations should return the context used inSolrMetricProducer.initializeMetrics(SolrMetricsContext, Attributes)to ensure proper cleanup of metrics at the end of the life-cycle of this component. This should be the child context if one was created, or null if the parent context was used.- Specified by:
getSolrMetricsContextin interfaceSolrMetricProducer
-
newLBHttpSolrClientReq
-
buildURLList
Creates a list of urls for the given shard.- Parameters:
shard- the urls for the shard, separated by '|'- Returns:
- A list of valid urls (including protocol) that are replicas for the shard
-
getReplicaListTransformer
protected org.apache.solr.client.solrj.routing.ReplicaListTransformer getReplicaListTransformer(SolrQueryRequest req) -
getClient
public org.apache.solr.client.solrj.SolrClient getClient() -
initializeMetrics
public void initializeMetrics(SolrMetricsContext parentContext, io.opentelemetry.api.common.Attributes attributes) Description copied from interface:SolrMetricProducerImplementation should initialize all metrics to aSolrMetricsContextRegistry/MeterProvider withAttributesas the common set of attributes that will be attached to every metric that is initialized for that class/component- Specified by:
initializeMetricsin interfaceSolrMetricProducer- Parameters:
parentContext- The registry that the component will initialize metrics toattributes- Base set of attributes that will be bound to all metrics for that component
-