Class InMemoryRateLimiterRegistry
- java.lang.Object
-
- io.github.resilience4j.core.registry.AbstractRegistry<RateLimiter,RateLimiterConfig>
-
- io.github.resilience4j.ratelimiter.internal.InMemoryRateLimiterRegistry
-
- All Implemented Interfaces:
io.github.resilience4j.core.Registry<RateLimiter,RateLimiterConfig>,RateLimiterRegistry
public class InMemoryRateLimiterRegistry extends io.github.resilience4j.core.registry.AbstractRegistry<RateLimiter,RateLimiterConfig> implements RateLimiterRegistry
Backend RateLimiter manager. Constructs backend RateLimiters according to configuration values.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface io.github.resilience4j.ratelimiter.RateLimiterRegistry
RateLimiterRegistry.Builder
-
-
Constructor Summary
Constructors Constructor Description InMemoryRateLimiterRegistry()The constructor with default default.InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig)The constructor with custom default config.InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer)InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers)InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags, io.github.resilience4j.core.RegistryStore<RateLimiter> registryStore)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.vavr.collection.Seq<RateLimiter>getAllRateLimiters()Returns all managedRateLimiterinstances.RateLimiterrateLimiter(java.lang.String name)Returns a managedRateLimiteror creates a new one with the default RateLimiter configuration.RateLimiterrateLimiter(java.lang.String name, RateLimiterConfig config)Returns a managedRateLimiteror creates a new one with a custom RateLimiter configuration.RateLimiterrateLimiter(java.lang.String name, RateLimiterConfig config, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)Returns a managedRateLimiteror creates a new one with a custom RateLimiter configuration.RateLimiterrateLimiter(java.lang.String name, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)Returns a managedRateLimiteror creates a new one with the default RateLimiter configuration.RateLimiterrateLimiter(java.lang.String name, java.lang.String configName)Returns a managedRateLimiteror creates a new one.RateLimiterrateLimiter(java.lang.String name, java.lang.String configName, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)Returns a managedRateLimiteror creates a new one.RateLimiterrateLimiter(java.lang.String name, java.util.function.Supplier<RateLimiterConfig> rateLimiterConfigSupplier)Returns a managedRateLimiterConfigor creates a new one with a custom RateLimiterConfig configuration.RateLimiterrateLimiter(java.lang.String name, java.util.function.Supplier<RateLimiterConfig> rateLimiterConfigSupplier, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)Returns a managedRateLimiterConfigor creates a new one with a custom RateLimiterConfig configuration.-
Methods inherited from class io.github.resilience4j.core.registry.AbstractRegistry
addConfiguration, computeIfAbsent, find, getAllTags, getConfiguration, getDefaultConfig, getEventPublisher, getTags, remove, replace
-
-
-
-
Constructor Detail
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry()
The constructor with default default.
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig)
The constructor with custom default config.- Parameters:
defaultConfig- The default config.
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter> registryEventConsumer, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(RateLimiterConfig defaultConfig, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
-
InMemoryRateLimiterRegistry
public InMemoryRateLimiterRegistry(java.util.Map<java.lang.String,RateLimiterConfig> configs, java.util.List<io.github.resilience4j.core.registry.RegistryEventConsumer<RateLimiter>> registryEventConsumers, io.vavr.collection.Map<java.lang.String,java.lang.String> tags, io.github.resilience4j.core.RegistryStore<RateLimiter> registryStore)
-
-
Method Detail
-
getAllRateLimiters
public io.vavr.collection.Seq<RateLimiter> getAllRateLimiters()
Returns all managedRateLimiterinstances.- Specified by:
getAllRateLimitersin interfaceRateLimiterRegistry- Returns:
- all managed
RateLimiterinstances.
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name)
Returns a managedRateLimiteror creates a new one with the default RateLimiter configuration.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiter- Returns:
- The
RateLimiter
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
Returns a managedRateLimiteror creates a new one with the default RateLimiter configuration.The
tagspassed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimitertags- tags added to the RateLimiter- Returns:
- The
RateLimiter
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, RateLimiterConfig config)
Returns a managedRateLimiteror creates a new one with a custom RateLimiter configuration.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterconfig- a custom RateLimiter configuration- Returns:
- The
RateLimiter
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, RateLimiterConfig config, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
Returns a managedRateLimiteror creates a new one with a custom RateLimiter configuration.The
tagspassed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterconfig- a custom RateLimiter configurationtags- tags added to the RateLimiter- Returns:
- The
RateLimiter
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, java.util.function.Supplier<RateLimiterConfig> rateLimiterConfigSupplier)
Returns a managedRateLimiterConfigor creates a new one with a custom RateLimiterConfig configuration.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterConfigrateLimiterConfigSupplier- a supplier of a custom RateLimiterConfig configuration- Returns:
- The
RateLimiterConfig
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, java.util.function.Supplier<RateLimiterConfig> rateLimiterConfigSupplier, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
Returns a managedRateLimiterConfigor creates a new one with a custom RateLimiterConfig configuration.The
tagspassed will be appended to the tags already configured for the registry. When tags (keys) of the two collide the tags passed with this method will override the tags of the registry.- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterConfigrateLimiterConfigSupplier- a supplier of a custom RateLimiterConfig configurationtags- tags added to the RateLimiter- Returns:
- The
RateLimiterConfig
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, java.lang.String configName)
Returns a managedRateLimiteror creates a new one. The configuration must have been added upfront viaRegistry.addConfiguration(String, Object).- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterconfigName- the name of the shared configuration- Returns:
- The
RateLimiter
-
rateLimiter
public RateLimiter rateLimiter(java.lang.String name, java.lang.String configName, io.vavr.collection.Map<java.lang.String,java.lang.String> tags)
Returns a managedRateLimiteror creates a new one. The configuration must have been added upfront viaRegistry.addConfiguration(String, Object).- Specified by:
rateLimiterin interfaceRateLimiterRegistry- Parameters:
name- the name of the RateLimiterconfigName- the name of the shared configuration- Returns:
- The
RateLimiter
-
-