Package io.lettuce.core.cluster
Class ClusterTopologyRefreshOptions.Builder
- java.lang.Object
-
- io.lettuce.core.cluster.ClusterTopologyRefreshOptions.Builder
-
- Enclosing class:
- ClusterTopologyRefreshOptions
public static class ClusterTopologyRefreshOptions.Builder extends Object
Builder forClusterTopologyRefreshOptions
.
-
-
Method Summary
-
-
-
Method Detail
-
enableAdaptiveRefreshTrigger
public ClusterTopologyRefreshOptions.Builder enableAdaptiveRefreshTrigger(ClusterTopologyRefreshOptions.RefreshTrigger... refreshTrigger)
Enables adaptive topology refreshing using one or moretriggers
. Adaptive refresh triggers initiate topology view updates based on events happened during Redis Cluster operations. Adaptive triggers lead to an immediate topology refresh. Adaptive triggered refreshes are rate-limited using a timeout since events can happen on a large scale. Adaptive refresh triggers are disabled by default. See alsoadaptiveRefreshTriggersTimeout(long, TimeUnit)
andClusterTopologyRefreshOptions.RefreshTrigger
.- Parameters:
refreshTrigger
- one or moreClusterTopologyRefreshOptions.RefreshTrigger
to enabled- Returns:
this
-
enableAllAdaptiveRefreshTriggers
public ClusterTopologyRefreshOptions.Builder enableAllAdaptiveRefreshTriggers()
Enables adaptive topology refreshing using alltriggers
. Adaptive refresh triggers initiate topology view updates based on events happened during Redis Cluster operations. Adaptive triggers lead to an immediate topology refresh. Adaptive triggered refreshes are rate-limited using a timeout since events can happen on a large scale. Adaptive refresh triggers are disabled by default. See alsoadaptiveRefreshTriggersTimeout(long, TimeUnit)
andClusterTopologyRefreshOptions.RefreshTrigger
.- Returns:
this
-
adaptiveRefreshTriggersTimeout
public ClusterTopologyRefreshOptions.Builder adaptiveRefreshTriggersTimeout(Duration timeout)
Set the timeout for adaptive topology updates. This timeout is to rate-limit topology updates initiated by refresh triggers to one topology refresh per timeout. Defaults to 30 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
.- Parameters:
timeout
- timeout for rate-limit adaptive topology updates, must be greater than 0.- Returns:
this
- Since:
- 5.0
-
adaptiveRefreshTriggersTimeout
@Deprecated public ClusterTopologyRefreshOptions.Builder adaptiveRefreshTriggersTimeout(long timeout, TimeUnit unit)
Deprecated.since 5.0, useadaptiveRefreshTriggersTimeout(Duration)
.Set the timeout for adaptive topology updates. This timeout is to rate-limit topology updates initiated by refresh triggers to one topology refresh per timeout. Defaults to 30 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
.- Parameters:
timeout
- timeout for rate-limit adaptive topology updatesunit
- unit fortimeout
- Returns:
this
-
closeStaleConnections
public ClusterTopologyRefreshOptions.Builder closeStaleConnections(boolean closeStaleConnections)
Flag, whether to close stale connections when refreshing the cluster topology. Defaults totrue
. Comes only into effect ifClusterTopologyRefreshOptions.isPeriodicRefreshEnabled()
istrue
. SeeClusterTopologyRefreshOptions.DEFAULT_CLOSE_STALE_CONNECTIONS
.- Parameters:
closeStaleConnections
-true
if stale connections are cleaned up after cluster topology updates- Returns:
this
-
dynamicRefreshSources
public ClusterTopologyRefreshOptions.Builder dynamicRefreshSources(boolean dynamicRefreshSources)
Discover cluster nodes from topology and use the discovered nodes as source for the cluster topology. Using dynamic refresh will query all discovered nodes for the cluster topology and calculate the number of clients for each node. If set tofalse
, only the initial seed nodes will be used as sources for topology discovery and the number of clients including response latency will be obtained only for the initial seed nodes. This can be useful when using Redis Cluster with many nodes. Defaults totrue
. SeeClusterTopologyRefreshOptions.DEFAULT_DYNAMIC_REFRESH_SOURCES
.- Parameters:
dynamicRefreshSources
-true
to discover and query all cluster nodes for obtaining the cluster topology- Returns:
this
-
enablePeriodicRefresh
public ClusterTopologyRefreshOptions.Builder enablePeriodicRefresh()
Enables periodic cluster topology updates. The client starts updating the cluster topology in the intervals ofrefreshPeriod
. Defaults tofalse
. SeeClusterTopologyRefreshOptions.DEFAULT_PERIODIC_REFRESH_ENABLED
.- Returns:
this
-
enablePeriodicRefresh
public ClusterTopologyRefreshOptions.Builder enablePeriodicRefresh(boolean enabled)
Enable regular cluster topology updates. The client starts updating the cluster topology in the intervals ofrefreshPeriod
. Defaults tofalse
. SeeClusterTopologyRefreshOptions.DEFAULT_PERIODIC_REFRESH_ENABLED
.- Parameters:
enabled
-true
enable regular cluster topology updates orfalse
to disable auto-updating- Returns:
this
-
enablePeriodicRefresh
public ClusterTopologyRefreshOptions.Builder enablePeriodicRefresh(Duration refreshPeriod)
Enables periodic refresh and sets the refresh period. Defaults to 60 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
. This method is a shortcut forrefreshPeriod(long, TimeUnit)
andenablePeriodicRefresh()
.- Parameters:
refreshPeriod
- period for triggering topology updates, must be greater 0- Returns:
this
- Since:
- 5.0
-
enablePeriodicRefresh
@Deprecated public ClusterTopologyRefreshOptions.Builder enablePeriodicRefresh(long refreshPeriod, TimeUnit refreshPeriodUnit)
Deprecated.since 5.0, useenablePeriodicRefresh(Duration)
.Enables periodic refresh and sets the refresh period. Defaults to 60 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
. This method is a shortcut forrefreshPeriod(long, TimeUnit)
andenablePeriodicRefresh()
.- Parameters:
refreshPeriod
- period for triggering topology updates, must be greater 0refreshPeriodUnit
- unit forrefreshPeriod
, must not benull
- Returns:
this
-
refreshPeriod
public ClusterTopologyRefreshOptions.Builder refreshPeriod(Duration refreshPeriod)
Set the refresh period. Defaults to 60 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
.- Parameters:
refreshPeriod
- period for triggering topology updates, must be greater 0- Returns:
this
- Since:
- 5.0
-
refreshPeriod
@Deprecated public ClusterTopologyRefreshOptions.Builder refreshPeriod(long refreshPeriod, TimeUnit refreshPeriodUnit)
Deprecated.since 5.0, userefreshPeriod(Duration)
.Set the refresh period. Defaults to 60 SECONDS. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD
andClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD_UNIT
.- Parameters:
refreshPeriod
- period for triggering topology updates, must be greater 0refreshPeriodUnit
- unit forrefreshPeriod
, must not benull
- Returns:
this
-
refreshTriggersReconnectAttempts
public ClusterTopologyRefreshOptions.Builder refreshTriggersReconnectAttempts(int refreshTriggersReconnectAttempts)
Set the threshold for theClusterTopologyRefreshOptions.RefreshTrigger.PERSISTENT_RECONNECTS
. Topology updates based on persistent reconnects lead only to a refresh if the reconnect process tries at leastrefreshTriggersReconnectAttempts
. SeeClusterTopologyRefreshOptions.DEFAULT_REFRESH_TRIGGERS_RECONNECT_ATTEMPTS
.- Parameters:
refreshTriggersReconnectAttempts
- number of reconnect attempts for a connection before a n adaptive topology refresh is triggered- Returns:
this
-
build
public ClusterTopologyRefreshOptions build()
Create a new instance ofClusterTopologyRefreshOptions
- Returns:
- new instance of
ClusterTopologyRefreshOptions
-
-