public class DefaultClientResources extends Object implements ClientResources
The DefaultClientResources
instance is stateful, you have to shutdown the instance if you're no longer using it.
DefaultClientResources
allow to configure:
addressResolverGroup
that is a provided instance of AddressResolverGroup
.commandLatencyRecorder
which is a provided instance of CommandLatencyRecorder
dnsResolver
which is a provided instance of DnsResolver
.eventBus
which is a provided instance of EventBus
.ioThreadPoolSize
, alternativelyeventLoopGroupProvider
which is a provided instance of EventLoopGroupProvider
. Higher precedence than
ioThreadPoolSize
.eventExecutorGroup
which is a provided instance of EventExecutorGroup
. Higher precedence than
computationThreadPoolSize
.nettyCustomizer
that is a provided instance of NettyCustomizer
.socketAddressResolver
which is a provided instance of SocketAddressResolver
.threadFactoryProvider
to provide a ThreadFactory
for default timer, event loop and
event executor instances.timer
that is a provided instance of HashedWheelTimer
.tracing
that is a provided instance of Tracing
.Modifier and Type | Class and Description |
---|---|
static class |
DefaultClientResources.Builder
Builder for
DefaultClientResources . |
Modifier and Type | Field and Description |
---|---|
static AddressResolverGroup<?> |
DEFAULT_ADDRESS_RESOLVER_GROUP
Default
AddressResolverGroup . |
static int |
DEFAULT_COMPUTATION_THREADS |
static int |
DEFAULT_IO_THREADS |
static NettyCustomizer |
DEFAULT_NETTY_CUSTOMIZER
Default (no-op)
NettyCustomizer . |
static Supplier<Delay> |
DEFAULT_RECONNECT_DELAY
Default delay
Supplier for Delay.exponential() delay. |
protected static InternalLogger |
logger |
static int |
MIN_COMPUTATION_THREADS
Minimum number of computation threads.
|
static int |
MIN_IO_THREADS
Minimum number of I/O threads.
|
Modifier | Constructor and Description |
---|---|
protected |
DefaultClientResources(DefaultClientResources.Builder builder) |
Modifier and Type | Method and Description |
---|---|
AddressResolverGroup<?> |
addressResolverGroup()
Return the
AddressResolverGroup instance for DNS resolution. |
static DefaultClientResources.Builder |
builder()
Returns a new
DefaultClientResources.Builder to construct DefaultClientResources . |
EventPublisherOptions |
commandLatencyPublisherOptions()
Return the
EventPublisherOptions for latency event publishing. |
CommandLatencyRecorder |
commandLatencyRecorder()
Return the
CommandLatencyRecorder . |
int |
computationThreadPoolSize()
Return the pool size (number of threads) for all computation tasks.
|
static DefaultClientResources |
create()
Create a new
DefaultClientResources using default settings. |
DnsResolver |
dnsResolver()
Return the
DnsResolver . |
EventBus |
eventBus()
Return the event bus used to publish events.
|
EventExecutorGroup |
eventExecutorGroup()
Return the computation pool used for internal operations.
|
EventLoopGroupProvider |
eventLoopGroupProvider()
Return the
EventLoopGroupProvider that provides access to the particular event loop groups . lettuce requires at least two implementations: NioEventLoopGroup for
TCP/IP connections and EpollEventLoopGroup for unix domain socket connections (epoll). |
protected void |
finalize() |
int |
ioThreadPoolSize()
Return the pool size (number of threads) for IO threads.
|
DefaultClientResources.Builder |
mutate()
Returns a builder to create new
DefaultClientResources whose settings are replicated from the current
DefaultClientResources . |
NettyCustomizer |
nettyCustomizer()
Return the
NettyCustomizer to customize netty components. |
Delay |
reconnectDelay()
Return the
Delay for reconnect attempts. |
Future<Boolean> |
shutdown()
Shutdown the
ClientResources . |
Future<Boolean> |
shutdown(long quietPeriod,
long timeout,
TimeUnit timeUnit)
Shutdown the
ClientResources . |
SocketAddressResolver |
socketAddressResolver()
Return the
SocketAddressResolver . |
Timer |
timer()
Return the
Timer to schedule events. |
Tracing |
tracing()
Return the
Tracing instance to support tracing of Redis commands. |
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
create
protected static final InternalLogger logger
public static final int MIN_IO_THREADS
public static final int MIN_COMPUTATION_THREADS
public static final int DEFAULT_IO_THREADS
public static final int DEFAULT_COMPUTATION_THREADS
public static final Supplier<Delay> DEFAULT_RECONNECT_DELAY
Supplier
for Delay.exponential()
delay.public static final NettyCustomizer DEFAULT_NETTY_CUSTOMIZER
NettyCustomizer
.public static final AddressResolverGroup<?> DEFAULT_ADDRESS_RESOLVER_GROUP
AddressResolverGroup
.protected DefaultClientResources(DefaultClientResources.Builder builder)
public static DefaultClientResources create()
DefaultClientResources
using default settings.create
in interface ClientResources
public static DefaultClientResources.Builder builder()
DefaultClientResources.Builder
to construct DefaultClientResources
.builder
in interface ClientResources
DefaultClientResources.Builder
to construct DefaultClientResources
.public DefaultClientResources.Builder mutate()
DefaultClientResources
whose settings are replicated from the current
DefaultClientResources
.
Note: The resulting DefaultClientResources
retains shared state for Timer
,
CommandLatencyRecorder
, EventExecutorGroup
, and EventLoopGroupProvider
if these are left
unchanged. Thus you need only to shut down the last created ClientResources
instances. Shutdown affects any
previously created ClientResources
.
mutate
in interface ClientResources
DefaultClientResources.Builder
to create new DefaultClientResources
whose settings are
replicated from the current DefaultClientResources
.protected void finalize() throws Throwable
public Future<Boolean> shutdown()
ClientResources
.shutdown
in interface ClientResources
public Future<Boolean> shutdown(long quietPeriod, long timeout, TimeUnit timeUnit)
ClientResources
.shutdown
in interface ClientResources
quietPeriod
- the quiet period as described in the documentationtimeout
- the maximum amount of time to wait until the executor is shutdown regardless if a task was submitted
during the quiet periodtimeUnit
- the unit of quietPeriod
and timeout
public CommandLatencyRecorder commandLatencyRecorder()
ClientResources
CommandLatencyRecorder
.commandLatencyRecorder
in interface ClientResources
public EventPublisherOptions commandLatencyPublisherOptions()
ClientResources
EventPublisherOptions
for latency event publishing.commandLatencyPublisherOptions
in interface ClientResources
EventPublisherOptions
for latency event publishing.public int computationThreadPoolSize()
ClientResources
computationThreadPoolSize
in interface ClientResources
public DnsResolver dnsResolver()
ClientResources
DnsResolver
.dnsResolver
in interface ClientResources
public EventBus eventBus()
ClientResources
eventBus
in interface ClientResources
public EventLoopGroupProvider eventLoopGroupProvider()
ClientResources
EventLoopGroupProvider
that provides access to the particular event loop groups
. lettuce requires at least two implementations: NioEventLoopGroup
for
TCP/IP connections and EpollEventLoopGroup
for unix domain socket connections (epoll).
You can use DefaultEventLoopGroupProvider
as default implementation or implement an own
EventLoopGroupProvider
to share existing EventLoopGroup's
with lettuce.eventLoopGroupProvider
in interface ClientResources
EventLoopGroupProvider
which provides access to the particular event loop groups
public EventExecutorGroup eventExecutorGroup()
ClientResources
ConnectionWatchdog
.eventExecutorGroup
in interface ClientResources
public int ioThreadPoolSize()
ClientResources
ioThreadPoolSize
in interface ClientResources
public NettyCustomizer nettyCustomizer()
ClientResources
NettyCustomizer
to customize netty components.nettyCustomizer
in interface ClientResources
NettyCustomizer
.public Delay reconnectDelay()
ClientResources
Delay
for reconnect attempts. May return a different instance on each call.reconnectDelay
in interface ClientResources
Delay
.public SocketAddressResolver socketAddressResolver()
ClientResources
SocketAddressResolver
.socketAddressResolver
in interface ClientResources
public Timer timer()
ClientResources
Timer
to schedule events. A timer object may run single- or multi-threaded but must be used for
scheduling of short-running jobs only. Long-running jobs should be scheduled and executed using
ClientResources.eventExecutorGroup()
.timer
in interface ClientResources
public Tracing tracing()
ClientResources
Tracing
instance to support tracing of Redis commands.tracing
in interface ClientResources
Tracing
.public AddressResolverGroup<?> addressResolverGroup()
ClientResources
AddressResolverGroup
instance for DNS resolution.addressResolverGroup
in interface ClientResources
Copyright © 2022 lettuce.io. All rights reserved.