Class ServletLimiterBuilder
- java.lang.Object
-
- com.netflix.concurrency.limits.limiter.AbstractLimiter.Builder<BuilderT>
-
- com.netflix.concurrency.limits.limiter.AbstractPartitionedLimiter.Builder<ServletLimiterBuilder,jakarta.servlet.http.HttpServletRequest>
-
- com.netflix.concurrency.limits.servlet.jakarta.ServletLimiterBuilder
-
public final class ServletLimiterBuilder extends com.netflix.concurrency.limits.limiter.AbstractPartitionedLimiter.Builder<ServletLimiterBuilder,jakarta.servlet.http.HttpServletRequest>
Builder to simplify creating aLimiterspecific to a Servlet filter. By default, the same concurrency limit is shared by all requests. The limiter can be partitioned based on one of many request attributes. Only one type of partition may be specified.
-
-
Constructor Summary
Constructors Constructor Description ServletLimiterBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ServletLimiterBuilderpartitionByAttribute(java.lang.String name)Partition the limit by request attributeServletLimiterBuilderpartitionByHeader(java.lang.String name)Partition the limit by headerServletLimiterBuilderpartitionByParameter(java.lang.String name)Partition the limit by request parameterServletLimiterBuilderpartitionByPathInfo(java.util.function.Function<java.lang.String,java.lang.String> pathToGroup)Partition the limit by the full path.ServletLimiterBuilderpartitionByUserPrincipal(java.util.function.Function<java.security.Principal,java.lang.String> principalToGroup)Partition the limit byPrincipal.protected ServletLimiterBuilderself()-
Methods inherited from class com.netflix.concurrency.limits.limiter.AbstractPartitionedLimiter.Builder
build, hasPartitions, maxDelayedThreads, partition, partitionRejectDelay, partitionResolver
-
-
-
-
Method Detail
-
partitionByHeader
public ServletLimiterBuilder partitionByHeader(java.lang.String name)
Partition the limit by header- Returns:
- Chainable builder
-
partitionByUserPrincipal
public ServletLimiterBuilder partitionByUserPrincipal(java.util.function.Function<java.security.Principal,java.lang.String> principalToGroup)
Partition the limit byPrincipal. Percentages of the limit are partitioned to named groups. Group membership is derived from the provided mapping function.- Parameters:
principalToGroup- Mapping function fromPrincipalto a named group.- Returns:
- Chainable builder
-
partitionByAttribute
public ServletLimiterBuilder partitionByAttribute(java.lang.String name)
Partition the limit by request attribute- Returns:
- Chainable builder
-
partitionByParameter
public ServletLimiterBuilder partitionByParameter(java.lang.String name)
Partition the limit by request parameter- Returns:
- Chainable builder
-
partitionByPathInfo
public ServletLimiterBuilder partitionByPathInfo(java.util.function.Function<java.lang.String,java.lang.String> pathToGroup)
Partition the limit by the full path. Percentages of the limit are partitioned to named groups. Group membership is derived from the provided mapping function.- Parameters:
pathToGroup- Mapping function from full path to a named group.- Returns:
- Chainable builder
-
self
protected ServletLimiterBuilder self()
- Specified by:
selfin classcom.netflix.concurrency.limits.limiter.AbstractLimiter.Builder<ServletLimiterBuilder>
-
-