Class Subset.Builder
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite.Builder
-
- com.google.protobuf.AbstractMessage.Builder<BuilderType>
-
- com.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
- io.envoyproxy.envoy.extensions.load_balancing_policies.subset.v3.Subset.Builder
-
- All Implemented Interfaces:
com.google.protobuf.Message.Builder,com.google.protobuf.MessageLite.Builder,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,SubsetOrBuilder,Cloneable
- Enclosing class:
- Subset
public static final class Subset.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder> implements SubsetOrBuilder
Optionally divide the endpoints in this cluster into subsets defined by endpoint metadata and selected by route and weighted cluster metadata. [#next-free-field: 11]
Protobuf typeenvoy.extensions.load_balancing_policies.subset.v3.Subset
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Subset.BuilderaddAllSubsetSelectors(Iterable<? extends Subset.LbSubsetSelector> values)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuilderaddRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)Subset.BuilderaddSubsetSelectors(int index, Subset.LbSubsetSelector value)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuilderaddSubsetSelectors(int index, Subset.LbSubsetSelector.Builder builderForValue)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuilderaddSubsetSelectors(Subset.LbSubsetSelector value)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuilderaddSubsetSelectors(Subset.LbSubsetSelector.Builder builderForValue)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.LbSubsetSelector.BuilderaddSubsetSelectorsBuilder()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.LbSubsetSelector.BuilderaddSubsetSelectorsBuilder(int index)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subsetbuild()SubsetbuildPartial()Subset.Builderclear()Subset.BuilderclearAllowRedundantKeys()By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request.Subset.BuilderclearDefaultSubset()Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.Subset.BuilderclearFallbackPolicy()The behavior used when no endpoint subset matches the selected route's metadata.Subset.BuilderclearField(com.google.protobuf.Descriptors.FieldDescriptor field)Subset.BuilderclearListAsAny()If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.Subset.BuilderclearLocalityWeightAware()If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision.Subset.BuilderclearMetadataFallbackPolicy()Fallback mechanism that allows to try different route metadata until a host is found.Subset.BuilderclearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)Subset.BuilderclearPanicModeAny()If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead.Subset.BuilderclearScaleLocalityWeight()When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset.Subset.BuilderclearSubsetLbPolicy()The child LB policy to create for endpoint-picking within the chosen subset.Subset.BuilderclearSubsetSelectors()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.Builderclone()booleangetAllowRedundantKeys()By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request.SubsetgetDefaultInstanceForType()com.google.protobuf.StructgetDefaultSubset()Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.com.google.protobuf.Struct.BuildergetDefaultSubsetBuilder()Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.com.google.protobuf.StructOrBuildergetDefaultSubsetOrBuilder()Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.static com.google.protobuf.Descriptors.DescriptorgetDescriptor()com.google.protobuf.Descriptors.DescriptorgetDescriptorForType()Subset.LbSubsetFallbackPolicygetFallbackPolicy()The behavior used when no endpoint subset matches the selected route's metadata.intgetFallbackPolicyValue()The behavior used when no endpoint subset matches the selected route's metadata.booleangetListAsAny()If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.booleangetLocalityWeightAware()If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision.Subset.LbSubsetMetadataFallbackPolicygetMetadataFallbackPolicy()Fallback mechanism that allows to try different route metadata until a host is found.intgetMetadataFallbackPolicyValue()Fallback mechanism that allows to try different route metadata until a host is found.booleangetPanicModeAny()If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead.booleangetScaleLocalityWeight()When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset.LoadBalancingPolicygetSubsetLbPolicy()The child LB policy to create for endpoint-picking within the chosen subset.LoadBalancingPolicy.BuildergetSubsetLbPolicyBuilder()The child LB policy to create for endpoint-picking within the chosen subset.LoadBalancingPolicyOrBuildergetSubsetLbPolicyOrBuilder()The child LB policy to create for endpoint-picking within the chosen subset.Subset.LbSubsetSelectorgetSubsetSelectors(int index)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.LbSubsetSelector.BuildergetSubsetSelectorsBuilder(int index)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.List<Subset.LbSubsetSelector.Builder>getSubsetSelectorsBuilderList()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.intgetSubsetSelectorsCount()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.List<Subset.LbSubsetSelector>getSubsetSelectorsList()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.LbSubsetSelectorOrBuildergetSubsetSelectorsOrBuilder(int index)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.List<? extends Subset.LbSubsetSelectorOrBuilder>getSubsetSelectorsOrBuilderList()For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.booleanhasDefaultSubset()Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.booleanhasSubsetLbPolicy()The child LB policy to create for endpoint-picking within the chosen subset.protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTableinternalGetFieldAccessorTable()booleanisInitialized()Subset.BuildermergeDefaultSubset(com.google.protobuf.Struct value)Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.Subset.BuildermergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)Subset.BuildermergeFrom(com.google.protobuf.Message other)Subset.BuildermergeFrom(Subset other)Subset.BuildermergeSubsetLbPolicy(LoadBalancingPolicy value)The child LB policy to create for endpoint-picking within the chosen subset.Subset.BuildermergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)Subset.BuilderremoveSubsetSelectors(int index)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuildersetAllowRedundantKeys(boolean value)By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request.Subset.BuildersetDefaultSubset(com.google.protobuf.Struct value)Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.Subset.BuildersetDefaultSubset(com.google.protobuf.Struct.Builder builderForValue)Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`.Subset.BuildersetFallbackPolicy(Subset.LbSubsetFallbackPolicy value)The behavior used when no endpoint subset matches the selected route's metadata.Subset.BuildersetFallbackPolicyValue(int value)The behavior used when no endpoint subset matches the selected route's metadata.Subset.BuildersetField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)Subset.BuildersetListAsAny(boolean value)If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.Subset.BuildersetLocalityWeightAware(boolean value)If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision.Subset.BuildersetMetadataFallbackPolicy(Subset.LbSubsetMetadataFallbackPolicy value)Fallback mechanism that allows to try different route metadata until a host is found.Subset.BuildersetMetadataFallbackPolicyValue(int value)Fallback mechanism that allows to try different route metadata until a host is found.Subset.BuildersetPanicModeAny(boolean value)If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead.Subset.BuildersetRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)Subset.BuildersetScaleLocalityWeight(boolean value)When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset.Subset.BuildersetSubsetLbPolicy(LoadBalancingPolicy value)The child LB policy to create for endpoint-picking within the chosen subset.Subset.BuildersetSubsetLbPolicy(LoadBalancingPolicy.Builder builderForValue)The child LB policy to create for endpoint-picking within the chosen subset.Subset.BuildersetSubsetSelectors(int index, Subset.LbSubsetSelector value)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuildersetSubsetSelectors(int index, Subset.LbSubsetSelector.Builder builderForValue)For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value.Subset.BuildersetUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)-
Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder
getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMutableMapField, isClean, markClean, newBuilderForField, onBuilt, onChanged, setUnknownFieldsProto3
-
Methods inherited from class com.google.protobuf.AbstractMessage.Builder
findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder
addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTablein classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
clear
public Subset.Builder clear()
- Specified by:
clearin interfacecom.google.protobuf.Message.Builder- Specified by:
clearin interfacecom.google.protobuf.MessageLite.Builder- Overrides:
clearin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
getDescriptorForType
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
- Specified by:
getDescriptorForTypein interfacecom.google.protobuf.Message.Builder- Specified by:
getDescriptorForTypein interfacecom.google.protobuf.MessageOrBuilder- Overrides:
getDescriptorForTypein classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
getDefaultInstanceForType
public Subset getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-
build
public Subset build()
- Specified by:
buildin interfacecom.google.protobuf.Message.Builder- Specified by:
buildin interfacecom.google.protobuf.MessageLite.Builder
-
buildPartial
public Subset buildPartial()
- Specified by:
buildPartialin interfacecom.google.protobuf.Message.Builder- Specified by:
buildPartialin interfacecom.google.protobuf.MessageLite.Builder
-
clone
public Subset.Builder clone()
- Specified by:
clonein interfacecom.google.protobuf.Message.Builder- Specified by:
clonein interfacecom.google.protobuf.MessageLite.Builder- Overrides:
clonein classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
setField
public Subset.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
- Specified by:
setFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
setFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
clearField
public Subset.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
- Specified by:
clearFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
clearFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
clearOneof
public Subset.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
- Specified by:
clearOneofin interfacecom.google.protobuf.Message.Builder- Overrides:
clearOneofin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
setRepeatedField
public Subset.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
- Specified by:
setRepeatedFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
setRepeatedFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
addRepeatedField
public Subset.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
- Specified by:
addRepeatedFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
addRepeatedFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
mergeFrom
public Subset.Builder mergeFrom(com.google.protobuf.Message other)
- Specified by:
mergeFromin interfacecom.google.protobuf.Message.Builder- Overrides:
mergeFromin classcom.google.protobuf.AbstractMessage.Builder<Subset.Builder>
-
mergeFrom
public Subset.Builder mergeFrom(Subset other)
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
mergeFrom
public Subset.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Specified by:
mergeFromin interfacecom.google.protobuf.Message.Builder- Specified by:
mergeFromin interfacecom.google.protobuf.MessageLite.Builder- Overrides:
mergeFromin classcom.google.protobuf.AbstractMessage.Builder<Subset.Builder>- Throws:
IOException
-
getFallbackPolicyValue
public int getFallbackPolicyValue()
The behavior used when no endpoint subset matches the selected route's metadata. The value defaults to :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }- Specified by:
getFallbackPolicyValuein interfaceSubsetOrBuilder- Returns:
- The enum numeric value on the wire for fallbackPolicy.
-
setFallbackPolicyValue
public Subset.Builder setFallbackPolicyValue(int value)
The behavior used when no endpoint subset matches the selected route's metadata. The value defaults to :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }- Parameters:
value- The enum numeric value on the wire for fallbackPolicy to set.- Returns:
- This builder for chaining.
-
getFallbackPolicy
public Subset.LbSubsetFallbackPolicy getFallbackPolicy()
The behavior used when no endpoint subset matches the selected route's metadata. The value defaults to :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }- Specified by:
getFallbackPolicyin interfaceSubsetOrBuilder- Returns:
- The fallbackPolicy.
-
setFallbackPolicy
public Subset.Builder setFallbackPolicy(Subset.LbSubsetFallbackPolicy value)
The behavior used when no endpoint subset matches the selected route's metadata. The value defaults to :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }- Parameters:
value- The fallbackPolicy to set.- Returns:
- This builder for chaining.
-
clearFallbackPolicy
public Subset.Builder clearFallbackPolicy()
The behavior used when no endpoint subset matches the selected route's metadata. The value defaults to :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy fallback_policy = 1 [(.validate.rules) = { ... }- Returns:
- This builder for chaining.
-
hasDefaultSubset
public boolean hasDefaultSubset()
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;- Specified by:
hasDefaultSubsetin interfaceSubsetOrBuilder- Returns:
- Whether the defaultSubset field is set.
-
getDefaultSubset
public com.google.protobuf.Struct getDefaultSubset()
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;- Specified by:
getDefaultSubsetin interfaceSubsetOrBuilder- Returns:
- The defaultSubset.
-
setDefaultSubset
public Subset.Builder setDefaultSubset(com.google.protobuf.Struct value)
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;
-
setDefaultSubset
public Subset.Builder setDefaultSubset(com.google.protobuf.Struct.Builder builderForValue)
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;
-
mergeDefaultSubset
public Subset.Builder mergeDefaultSubset(com.google.protobuf.Struct value)
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;
-
clearDefaultSubset
public Subset.Builder clearDefaultSubset()
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;
-
getDefaultSubsetBuilder
public com.google.protobuf.Struct.Builder getDefaultSubsetBuilder()
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;
-
getDefaultSubsetOrBuilder
public com.google.protobuf.StructOrBuilder getDefaultSubsetOrBuilder()
Specifies the default subset of endpoints used during fallback if fallback_policy is :ref:`DEFAULT_SUBSET<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.DEFAULT_SUBSET>`. Each field in default_subset is compared to the matching LbEndpoint.Metadata under the ``envoy.lb`` namespace. It is valid for no hosts to match, in which case the behavior is the same as a fallback_policy of :ref:`NO_FALLBACK<envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.Subset.LbSubsetFallbackPolicy.NO_FALLBACK>`.
.google.protobuf.Struct default_subset = 2;- Specified by:
getDefaultSubsetOrBuilderin interfaceSubsetOrBuilder
-
getSubsetSelectorsList
public List<Subset.LbSubsetSelector> getSubsetSelectorsList()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;- Specified by:
getSubsetSelectorsListin interfaceSubsetOrBuilder
-
getSubsetSelectorsCount
public int getSubsetSelectorsCount()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;- Specified by:
getSubsetSelectorsCountin interfaceSubsetOrBuilder
-
getSubsetSelectors
public Subset.LbSubsetSelector getSubsetSelectors(int index)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;- Specified by:
getSubsetSelectorsin interfaceSubsetOrBuilder
-
setSubsetSelectors
public Subset.Builder setSubsetSelectors(int index, Subset.LbSubsetSelector value)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
setSubsetSelectors
public Subset.Builder setSubsetSelectors(int index, Subset.LbSubsetSelector.Builder builderForValue)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addSubsetSelectors
public Subset.Builder addSubsetSelectors(Subset.LbSubsetSelector value)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addSubsetSelectors
public Subset.Builder addSubsetSelectors(int index, Subset.LbSubsetSelector value)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addSubsetSelectors
public Subset.Builder addSubsetSelectors(Subset.LbSubsetSelector.Builder builderForValue)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addSubsetSelectors
public Subset.Builder addSubsetSelectors(int index, Subset.LbSubsetSelector.Builder builderForValue)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addAllSubsetSelectors
public Subset.Builder addAllSubsetSelectors(Iterable<? extends Subset.LbSubsetSelector> values)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
clearSubsetSelectors
public Subset.Builder clearSubsetSelectors()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
removeSubsetSelectors
public Subset.Builder removeSubsetSelectors(int index)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
getSubsetSelectorsBuilder
public Subset.LbSubsetSelector.Builder getSubsetSelectorsBuilder(int index)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
getSubsetSelectorsOrBuilder
public Subset.LbSubsetSelectorOrBuilder getSubsetSelectorsOrBuilder(int index)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;- Specified by:
getSubsetSelectorsOrBuilderin interfaceSubsetOrBuilder
-
getSubsetSelectorsOrBuilderList
public List<? extends Subset.LbSubsetSelectorOrBuilder> getSubsetSelectorsOrBuilderList()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;- Specified by:
getSubsetSelectorsOrBuilderListin interfaceSubsetOrBuilder
-
addSubsetSelectorsBuilder
public Subset.LbSubsetSelector.Builder addSubsetSelectorsBuilder()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
addSubsetSelectorsBuilder
public Subset.LbSubsetSelector.Builder addSubsetSelectorsBuilder(int index)
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
getSubsetSelectorsBuilderList
public List<Subset.LbSubsetSelector.Builder> getSubsetSelectorsBuilderList()
For each entry, LbEndpoint.Metadata's ``envoy.lb`` namespace is traversed and a subset is created for each unique combination of key and value. For example: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "hardware_type" ] } ]} A subset is matched when the metadata from the selected route and weighted cluster contains the same keys and values as the subset's metadata. The same host may appear in multiple subsets.repeated .envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetSelector subset_selectors = 3;
-
getAllowRedundantKeys
public boolean getAllowRedundantKeys()
By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request. For example, given the following subset selectors: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "version" ] } ]} A request with metadata ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}`` or ``{"redundant-key": "redundant-value", "version": "v1"}`` will not have a valid subset even if the values of keys ``stage`` and ``version`` are matched because of the redundant key/value pair in the request metadata. By setting this field to true, the most appropriate keys will be filtered out from the request metadata according to the subset selectors. And then the filtered keys and related values will be matched to find the valid host subset. By this way, redundant key/value pairs are allowed in the request metadata. The keys of a request metadata could be superset of the keys of the subset selectors and need not to be exactly the same as the keys of the subset selectors. More specifically, if the keys of a request metadata is a superset of one of the subset selectors, then only the values of the keys that in the selector keys will be matched. Take the above example, if the request metadata is ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}``, the load balancer will only match the values of ``stage`` and ``version`` to find an appropriate subset because ``stage`` ``version`` are contained by the second subset selector and the redundant ``redundant-key`` will be ignored. .. note:: If the keys of request metadata is superset of multiple different subset selectors keys, the subset selector with most keys to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B", "C"], ["A", "B"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B``, ``C`` will be evaluated. If the keys of request metadata is superset of multiple different subset selectors keys and the number of selector keys are same, then the one placed in front to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B"], ["C", "D"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B`` will be evaluated.bool allow_redundant_keys = 10;- Specified by:
getAllowRedundantKeysin interfaceSubsetOrBuilder- Returns:
- The allowRedundantKeys.
-
setAllowRedundantKeys
public Subset.Builder setAllowRedundantKeys(boolean value)
By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request. For example, given the following subset selectors: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "version" ] } ]} A request with metadata ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}`` or ``{"redundant-key": "redundant-value", "version": "v1"}`` will not have a valid subset even if the values of keys ``stage`` and ``version`` are matched because of the redundant key/value pair in the request metadata. By setting this field to true, the most appropriate keys will be filtered out from the request metadata according to the subset selectors. And then the filtered keys and related values will be matched to find the valid host subset. By this way, redundant key/value pairs are allowed in the request metadata. The keys of a request metadata could be superset of the keys of the subset selectors and need not to be exactly the same as the keys of the subset selectors. More specifically, if the keys of a request metadata is a superset of one of the subset selectors, then only the values of the keys that in the selector keys will be matched. Take the above example, if the request metadata is ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}``, the load balancer will only match the values of ``stage`` and ``version`` to find an appropriate subset because ``stage`` ``version`` are contained by the second subset selector and the redundant ``redundant-key`` will be ignored. .. note:: If the keys of request metadata is superset of multiple different subset selectors keys, the subset selector with most keys to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B", "C"], ["A", "B"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B``, ``C`` will be evaluated. If the keys of request metadata is superset of multiple different subset selectors keys and the number of selector keys are same, then the one placed in front to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B"], ["C", "D"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B`` will be evaluated.bool allow_redundant_keys = 10;- Parameters:
value- The allowRedundantKeys to set.- Returns:
- This builder for chaining.
-
clearAllowRedundantKeys
public Subset.Builder clearAllowRedundantKeys()
By default, only when the request metadata has exactly the **same** keys as one of subset selectors and the values of the related keys are matched, the load balancer will have a valid subset for the request. For example, given the following subset selectors: .. code-block:: json { "subset_selectors": [ { "keys": [ "version" ] }, { "keys": [ "stage", "version" ] } ]} A request with metadata ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}`` or ``{"redundant-key": "redundant-value", "version": "v1"}`` will not have a valid subset even if the values of keys ``stage`` and ``version`` are matched because of the redundant key/value pair in the request metadata. By setting this field to true, the most appropriate keys will be filtered out from the request metadata according to the subset selectors. And then the filtered keys and related values will be matched to find the valid host subset. By this way, redundant key/value pairs are allowed in the request metadata. The keys of a request metadata could be superset of the keys of the subset selectors and need not to be exactly the same as the keys of the subset selectors. More specifically, if the keys of a request metadata is a superset of one of the subset selectors, then only the values of the keys that in the selector keys will be matched. Take the above example, if the request metadata is ``{"redundant-key": "redundant-value", "stage": "prod", "version": "v1"}``, the load balancer will only match the values of ``stage`` and ``version`` to find an appropriate subset because ``stage`` ``version`` are contained by the second subset selector and the redundant ``redundant-key`` will be ignored. .. note:: If the keys of request metadata is superset of multiple different subset selectors keys, the subset selector with most keys to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B", "C"], ["A", "B"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B``, ``C`` will be evaluated. If the keys of request metadata is superset of multiple different subset selectors keys and the number of selector keys are same, then the one placed in front to win. For example, given subset selectors ``{"subset_selectors": ["keys": ["A", "B"], ["C", "D"]]}`` and request metadata ``{"A": "-", "B": "-", "C": "-", "D": "-"}``, keys ``A``, ``B`` will be evaluated.bool allow_redundant_keys = 10;- Returns:
- This builder for chaining.
-
getLocalityWeightAware
public boolean getLocalityWeightAware()
If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision. There are some potential pitfalls associated with enabling this feature, as the resulting traffic split after applying both a subset match and locality weights might be undesirable. Consider for example a situation in which you have 50/50 split across two localities X/Y which have 100 hosts each without subsetting. If the subset LB results in X having only 1 host selected but Y having 100, then a lot more load is being dumped on the single host in X than originally anticipated in the load balancing assignment delivered via EDS.
bool locality_weight_aware = 4;- Specified by:
getLocalityWeightAwarein interfaceSubsetOrBuilder- Returns:
- The localityWeightAware.
-
setLocalityWeightAware
public Subset.Builder setLocalityWeightAware(boolean value)
If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision. There are some potential pitfalls associated with enabling this feature, as the resulting traffic split after applying both a subset match and locality weights might be undesirable. Consider for example a situation in which you have 50/50 split across two localities X/Y which have 100 hosts each without subsetting. If the subset LB results in X having only 1 host selected but Y having 100, then a lot more load is being dumped on the single host in X than originally anticipated in the load balancing assignment delivered via EDS.
bool locality_weight_aware = 4;- Parameters:
value- The localityWeightAware to set.- Returns:
- This builder for chaining.
-
clearLocalityWeightAware
public Subset.Builder clearLocalityWeightAware()
If true, routing to subsets will take into account the localities and locality weights of the endpoints when making the routing decision. There are some potential pitfalls associated with enabling this feature, as the resulting traffic split after applying both a subset match and locality weights might be undesirable. Consider for example a situation in which you have 50/50 split across two localities X/Y which have 100 hosts each without subsetting. If the subset LB results in X having only 1 host selected but Y having 100, then a lot more load is being dumped on the single host in X than originally anticipated in the load balancing assignment delivered via EDS.
bool locality_weight_aware = 4;- Returns:
- This builder for chaining.
-
getScaleLocalityWeight
public boolean getScaleLocalityWeight()
When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset. This aims to even out the load going to an individual locality if said locality is disproportionately affected by the subset predicate.
bool scale_locality_weight = 5;- Specified by:
getScaleLocalityWeightin interfaceSubsetOrBuilder- Returns:
- The scaleLocalityWeight.
-
setScaleLocalityWeight
public Subset.Builder setScaleLocalityWeight(boolean value)
When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset. This aims to even out the load going to an individual locality if said locality is disproportionately affected by the subset predicate.
bool scale_locality_weight = 5;- Parameters:
value- The scaleLocalityWeight to set.- Returns:
- This builder for chaining.
-
clearScaleLocalityWeight
public Subset.Builder clearScaleLocalityWeight()
When used with locality_weight_aware, scales the weight of each locality by the ratio of hosts in the subset vs hosts in the original subset. This aims to even out the load going to an individual locality if said locality is disproportionately affected by the subset predicate.
bool scale_locality_weight = 5;- Returns:
- This builder for chaining.
-
getPanicModeAny
public boolean getPanicModeAny()
If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead. This is useful when using the default subset as the fallback policy, given the default subset might become empty. With this option enabled, if that happens the LB will attempt to select a host from the entire cluster.
bool panic_mode_any = 6;- Specified by:
getPanicModeAnyin interfaceSubsetOrBuilder- Returns:
- The panicModeAny.
-
setPanicModeAny
public Subset.Builder setPanicModeAny(boolean value)
If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead. This is useful when using the default subset as the fallback policy, given the default subset might become empty. With this option enabled, if that happens the LB will attempt to select a host from the entire cluster.
bool panic_mode_any = 6;- Parameters:
value- The panicModeAny to set.- Returns:
- This builder for chaining.
-
clearPanicModeAny
public Subset.Builder clearPanicModeAny()
If true, when a fallback policy is configured and its corresponding subset fails to find a host this will cause any host to be selected instead. This is useful when using the default subset as the fallback policy, given the default subset might become empty. With this option enabled, if that happens the LB will attempt to select a host from the entire cluster.
bool panic_mode_any = 6;- Returns:
- This builder for chaining.
-
getListAsAny
public boolean getListAsAny()
If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.
bool list_as_any = 7;- Specified by:
getListAsAnyin interfaceSubsetOrBuilder- Returns:
- The listAsAny.
-
setListAsAny
public Subset.Builder setListAsAny(boolean value)
If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.
bool list_as_any = 7;- Parameters:
value- The listAsAny to set.- Returns:
- This builder for chaining.
-
clearListAsAny
public Subset.Builder clearListAsAny()
If true, metadata specified for a metadata key will be matched against the corresponding endpoint metadata if the endpoint metadata matches the value exactly OR it is a list value and any of the elements in the list matches the criteria.
bool list_as_any = 7;- Returns:
- This builder for chaining.
-
getMetadataFallbackPolicyValue
public int getMetadataFallbackPolicyValue()
Fallback mechanism that allows to try different route metadata until a host is found. If load balancing process, including all its mechanisms (like :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`) fails to select a host, this policy decides if and how the process is repeated using another metadata. The value defaults to :ref:`METADATA_NO_FALLBACK <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }- Specified by:
getMetadataFallbackPolicyValuein interfaceSubsetOrBuilder- Returns:
- The enum numeric value on the wire for metadataFallbackPolicy.
-
setMetadataFallbackPolicyValue
public Subset.Builder setMetadataFallbackPolicyValue(int value)
Fallback mechanism that allows to try different route metadata until a host is found. If load balancing process, including all its mechanisms (like :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`) fails to select a host, this policy decides if and how the process is repeated using another metadata. The value defaults to :ref:`METADATA_NO_FALLBACK <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }- Parameters:
value- The enum numeric value on the wire for metadataFallbackPolicy to set.- Returns:
- This builder for chaining.
-
getMetadataFallbackPolicy
public Subset.LbSubsetMetadataFallbackPolicy getMetadataFallbackPolicy()
Fallback mechanism that allows to try different route metadata until a host is found. If load balancing process, including all its mechanisms (like :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`) fails to select a host, this policy decides if and how the process is repeated using another metadata. The value defaults to :ref:`METADATA_NO_FALLBACK <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }- Specified by:
getMetadataFallbackPolicyin interfaceSubsetOrBuilder- Returns:
- The metadataFallbackPolicy.
-
setMetadataFallbackPolicy
public Subset.Builder setMetadataFallbackPolicy(Subset.LbSubsetMetadataFallbackPolicy value)
Fallback mechanism that allows to try different route metadata until a host is found. If load balancing process, including all its mechanisms (like :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`) fails to select a host, this policy decides if and how the process is repeated using another metadata. The value defaults to :ref:`METADATA_NO_FALLBACK <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }- Parameters:
value- The metadataFallbackPolicy to set.- Returns:
- This builder for chaining.
-
clearMetadataFallbackPolicy
public Subset.Builder clearMetadataFallbackPolicy()
Fallback mechanism that allows to try different route metadata until a host is found. If load balancing process, including all its mechanisms (like :ref:`fallback_policy<envoy_v3_api_field_extensions.load_balancing_policies.subset.v3.subset.fallback_policy>`) fails to select a host, this policy decides if and how the process is repeated using another metadata. The value defaults to :ref:`METADATA_NO_FALLBACK <envoy_v3_api_enum_value_extensions.load_balancing_policies.subset.v3.subset.LbSubsetMetadataFallbackPolicy.METADATA_NO_FALLBACK>`.
.envoy.extensions.load_balancing_policies.subset.v3.Subset.LbSubsetMetadataFallbackPolicy metadata_fallback_policy = 8 [(.validate.rules) = { ... }- Returns:
- This builder for chaining.
-
hasSubsetLbPolicy
public boolean hasSubsetLbPolicy()
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }- Specified by:
hasSubsetLbPolicyin interfaceSubsetOrBuilder- Returns:
- Whether the subsetLbPolicy field is set.
-
getSubsetLbPolicy
public LoadBalancingPolicy getSubsetLbPolicy()
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }- Specified by:
getSubsetLbPolicyin interfaceSubsetOrBuilder- Returns:
- The subsetLbPolicy.
-
setSubsetLbPolicy
public Subset.Builder setSubsetLbPolicy(LoadBalancingPolicy value)
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
-
setSubsetLbPolicy
public Subset.Builder setSubsetLbPolicy(LoadBalancingPolicy.Builder builderForValue)
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
-
mergeSubsetLbPolicy
public Subset.Builder mergeSubsetLbPolicy(LoadBalancingPolicy value)
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
-
clearSubsetLbPolicy
public Subset.Builder clearSubsetLbPolicy()
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
-
getSubsetLbPolicyBuilder
public LoadBalancingPolicy.Builder getSubsetLbPolicyBuilder()
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }
-
getSubsetLbPolicyOrBuilder
public LoadBalancingPolicyOrBuilder getSubsetLbPolicyOrBuilder()
The child LB policy to create for endpoint-picking within the chosen subset.
.envoy.config.cluster.v3.LoadBalancingPolicy subset_lb_policy = 9 [(.validate.rules) = { ... }- Specified by:
getSubsetLbPolicyOrBuilderin interfaceSubsetOrBuilder
-
setUnknownFields
public final Subset.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
- Specified by:
setUnknownFieldsin interfacecom.google.protobuf.Message.Builder- Overrides:
setUnknownFieldsin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
mergeUnknownFields
public final Subset.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
- Specified by:
mergeUnknownFieldsin interfacecom.google.protobuf.Message.Builder- Overrides:
mergeUnknownFieldsin classcom.google.protobuf.GeneratedMessageV3.Builder<Subset.Builder>
-
-