Class CoreEnvironment.Builder<SELF extends CoreEnvironment.Builder<SELF>>
- Enclosing class:
- CoreEnvironment
public static class CoreEnvironment.Builder<SELF extends CoreEnvironment.Builder<SELF>> extends Object
-
Constructor Summary
Constructors Modifier Constructor Description protected
Builder()
-
Method Summary
Modifier and Type Method Description SELF
addRequestCallback(RequestCallback requestCallback)
Allows to configure callbacks across the lifetime of a request.AggregatingMeterConfig.Builder
aggregatingMeterConfig()
SELF
aggregatingMeterConfig(AggregatingMeterConfig.Builder aggregatingMeterConfig)
CoreEnvironment
build()
Turns this builder into a realCoreEnvironment
.CompressionConfig.Builder
compressionConfig()
Returns the currently stored config builder.SELF
compressionConfig(CompressionConfig.Builder compressionConfig)
Allows to customize document value compression settings.SELF
eventBus(EventBus eventBus)
Customizes the event bus for the SDK.IoConfig.Builder
ioConfig()
Returns the currently stored config builder.SELF
ioConfig(IoConfig.Builder ioConfig)
Allows to customize various I/O-related configuration properties.IoEnvironment.Builder
ioEnvironment()
Deprecated.SELF
ioEnvironment(IoEnvironment.Builder ioEnvironment)
Allows to customize I/O thread pools.IoEnvironment.Builder
ioEnvironmentConfig()
Returns the currently stored IoEnvironment builder.SELF
load(PropertyLoader<CoreEnvironment.Builder> loader)
Immediately loads the properties from the given loader into the environment.LoggerConfig.Builder
loggerConfig()
Returns the currently stored config builder.SELF
loggerConfig(LoggerConfig.Builder loggerConfig)
Allows to provide a custom configuration for the default logger used.SELF
maxNumRequestsInRetry(long maxNumRequestsInRetry)
Allows to customize the maximum number of requests allowed in the retry timer.SELF
meter(Meter meter)
Allows to configure a custom metrics implementation.OrphanReporterConfig.Builder
orphanReporterConfig()
Returns the currently stored config builder.SELF
orphanReporterConfig(OrphanReporterConfig.Builder orphanReporterConfig)
Allows to customize the behavior of the orphan response reporter.SELF
requestTracer(RequestTracer requestTracer)
Allows to configure a custom tracer implementation.SELF
retryStrategy(RetryStrategy retryStrategy)
Allows to customize the default retry strategy.SELF
scheduler(Scheduler scheduler)
Customizes the default Reactor scheduler used for parallel operations.SecurityConfig.Builder
securityConfig()
Returns the currently stored config builder.SELF
securityConfig(SecurityConfig.Builder securityConfig)
Allows to configure everything related to TLS/encrypted connections.protected SELF
self()
ThresholdRequestTracerConfig.Builder
thresholdRequestTracerConfig()
SELF
thresholdRequestTracerConfig(ThresholdRequestTracerConfig.Builder thresholdRequestTracerConfig)
Allows to customize the threshold request tracer configuration.TimeoutConfig.Builder
timeoutConfig()
Returns the currently stored config builder.SELF
timeoutConfig(TimeoutConfig.Builder timeoutConfig)
Allows to customize the default timeouts for all operations.
-
Constructor Details
-
Builder
protected Builder()
-
-
Method Details
-
self
-
maxNumRequestsInRetry
Allows to customize the maximum number of requests allowed in the retry timer.If the
CoreEnvironment.DEFAULT_MAX_NUM_REQUESTS_IN_RETRY
is reached, each request that would be queued for retry is instead cancelled with aCancellationReason.TOO_MANY_REQUESTS_IN_RETRY
. This acts as a form of safety net and backpressure.- Parameters:
maxNumRequestsInRetry
- the maximum number of requests outstanding for retry.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
load
Immediately loads the properties from the given loader into the environment.- Parameters:
loader
- the loader to load the properties from.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
ioEnvironment
Allows to customize I/O thread pools.Note that the
IoEnvironment
holds thread pools and other resources. If you do not want to customize thread pool sizes, you likely want to look at theIoConfig
instead.- Parameters:
ioEnvironment
- the IO environment to customize.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
ioEnvironment
Deprecated.Please useioEnvironmentConfig()
instead.Returns the currently stored IoEnvironment builder.- Returns:
- the current builder.
-
ioEnvironmentConfig
Returns the currently stored IoEnvironment builder.- Returns:
- the current builder.
-
ioConfig
Allows to customize various I/O-related configuration properties.The I/O config is the main way to control how the SDK behaves at the lower levels. It allows to customize properties such as tcp keepalive, number of connections, circuit breakers, etc.
- Parameters:
ioConfig
- the custom I/O config to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
ioConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
orphanReporterConfig
Allows to customize the behavior of the orphan response reporter.The orphan reporter logs all responses that arrived when the requesting side is not listening anymore (usually because of a timeout). The config can be modified to tune certain properties like the sample size or the emit interval.
- Parameters:
orphanReporterConfig
- the custom orphan reporter config.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
orphanReporterConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
aggregatingMeterConfig
-
aggregatingMeterConfig
-
thresholdRequestTracerConfig
public SELF thresholdRequestTracerConfig(ThresholdRequestTracerConfig.Builder thresholdRequestTracerConfig)Allows to customize the threshold request tracer configuration.- Parameters:
thresholdRequestTracerConfig
- the configuration which should be used.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
thresholdRequestTracerConfig
-
compressionConfig
Allows to customize document value compression settings.Usually this does not need to be tuned, but thresholds can be modified or compression can be disabled completely if needed.
- Parameters:
compressionConfig
- the custom compression config.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
compressionConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
securityConfig
Allows to configure everything related to TLS/encrypted connections.Note that if you are looking to use client certificate authentication, please refer to the
CertificateAuthenticator
instead.- Parameters:
securityConfig
- the custom security config to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
securityConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
timeoutConfig
Allows to customize the default timeouts for all operations.Each timeout can also be modified on a per-request basis in their respective options blocks.
- Parameters:
timeoutConfig
- the custom timeout config to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
timeoutConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
loggerConfig
Allows to provide a custom configuration for the default logger used.The default logger attaches itself to the
EventBus
on the environment and logs consumed events. This configuration allows to customize its behavior, diagnostic context etc.- Parameters:
loggerConfig
- the custom logger config to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
loggerConfig
Returns the currently stored config builder.- Returns:
- the current builder.
-
eventBus
Customizes the event bus for the SDK.The SDK ships with a high-performance implementation of a event bus. Only swap out if you have special needs, usually what you want instead is to register your own consumer on the event bus instead (
EventBus.subscribe(Consumer)
)!- Parameters:
eventBus
- the event bus to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
scheduler
Customizes the default Reactor scheduler used for parallel operations.Usually you do not need to modify the scheduler, use with care.
- Parameters:
scheduler
- a custom scheduler to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
retryStrategy
Allows to customize the default retry strategy.Note that this setting modifies the SDK-wide retry strategy. It can still be overridden on a per-request basis in the respective options block.
- Parameters:
retryStrategy
- the default retry strategy to use for all operations.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
requestTracer
Allows to configure a custom tracer implementation.IMPORTANT: this is a volatile, likely to change API!
- Parameters:
requestTracer
- the custom request tracer to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
meter
Allows to configure a custom metrics implementation.IMPORTANT: this is a volatile, likely to change API!
- Parameters:
meter
- the custom metrics implementation to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
addRequestCallback
Allows to configure callbacks across the lifetime of a request.IMPORTANT: this is internal API and might change at any point in time.
- Parameters:
requestCallback
- the callback to use.- Returns:
- this
CoreEnvironment.Builder
for chaining purposes.
-
build
Turns this builder into a realCoreEnvironment
.- Returns:
- the created core environment.
-
ioEnvironmentConfig()
instead.