Class Cluster.CommonLbConfig

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cluster.CommonLbConfigOrBuilder, Serializable
    Enclosing class:
    Cluster

    public static final class Cluster.CommonLbConfig
    extends com.google.protobuf.GeneratedMessageV3
    implements Cluster.CommonLbConfigOrBuilder
     Common configuration for all load balancer implementations.
     [#next-free-field: 9]
     
    Protobuf type envoy.config.cluster.v3.Cluster.CommonLbConfig
    See Also:
    Serialized Form
    • Field Detail

      • HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER

        public static final int HEALTHY_PANIC_THRESHOLD_FIELD_NUMBER
        See Also:
        Constant Field Values
      • ZONE_AWARE_LB_CONFIG_FIELD_NUMBER

        public static final int ZONE_AWARE_LB_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • LOCALITY_WEIGHTED_LB_CONFIG_FIELD_NUMBER

        public static final int LOCALITY_WEIGHTED_LB_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • UPDATE_MERGE_WINDOW_FIELD_NUMBER

        public static final int UPDATE_MERGE_WINDOW_FIELD_NUMBER
        See Also:
        Constant Field Values
      • IGNORE_NEW_HOSTS_UNTIL_FIRST_HC_FIELD_NUMBER

        public static final int IGNORE_NEW_HOSTS_UNTIL_FIRST_HC_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CLOSE_CONNECTIONS_ON_HOST_SET_CHANGE_FIELD_NUMBER

        public static final int CLOSE_CONNECTIONS_ON_HOST_SET_CHANGE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CONSISTENT_HASHING_LB_CONFIG_FIELD_NUMBER

        public static final int CONSISTENT_HASHING_LB_CONFIG_FIELD_NUMBER
        See Also:
        Constant Field Values
      • OVERRIDE_HOST_STATUS_FIELD_NUMBER

        public static final int OVERRIDE_HOST_STATUS_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • hasHealthyPanicThreshold

        public boolean hasHealthyPanicThreshold()
         Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
         If not specified, the default is 50%.
         To disable panic mode, set to 0%.
         .. note::
           The specified percent will be truncated to the nearest 1%.
         
        .envoy.type.v3.Percent healthy_panic_threshold = 1;
        Specified by:
        hasHealthyPanicThreshold in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the healthyPanicThreshold field is set.
      • getHealthyPanicThreshold

        public Percent getHealthyPanicThreshold()
         Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
         If not specified, the default is 50%.
         To disable panic mode, set to 0%.
         .. note::
           The specified percent will be truncated to the nearest 1%.
         
        .envoy.type.v3.Percent healthy_panic_threshold = 1;
        Specified by:
        getHealthyPanicThreshold in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        The healthyPanicThreshold.
      • getHealthyPanicThresholdOrBuilder

        public PercentOrBuilder getHealthyPanicThresholdOrBuilder()
         Configures the :ref:`healthy panic threshold <arch_overview_load_balancing_panic_threshold>`.
         If not specified, the default is 50%.
         To disable panic mode, set to 0%.
         .. note::
           The specified percent will be truncated to the nearest 1%.
         
        .envoy.type.v3.Percent healthy_panic_threshold = 1;
        Specified by:
        getHealthyPanicThresholdOrBuilder in interface Cluster.CommonLbConfigOrBuilder
      • hasZoneAwareLbConfig

        public boolean hasZoneAwareLbConfig()
        .envoy.config.cluster.v3.Cluster.CommonLbConfig.ZoneAwareLbConfig zone_aware_lb_config = 2;
        Specified by:
        hasZoneAwareLbConfig in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the zoneAwareLbConfig field is set.
      • hasLocalityWeightedLbConfig

        public boolean hasLocalityWeightedLbConfig()
        .envoy.config.cluster.v3.Cluster.CommonLbConfig.LocalityWeightedLbConfig locality_weighted_lb_config = 3;
        Specified by:
        hasLocalityWeightedLbConfig in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the localityWeightedLbConfig field is set.
      • hasUpdateMergeWindow

        public boolean hasUpdateMergeWindow()
         If set, all health check/weight/metadata updates that happen within this duration will be
         merged and delivered in one shot when the duration expires. The start of the duration is when
         the first update happens. This is useful for big clusters, with potentially noisy deploys
         that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
         or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
         cluster). Please always keep in mind that the use of sandbox technologies may change this
         behavior.
         If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
         window to 0.
         Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
         because merging those updates isn't currently safe. See
         https://github.com/envoyproxy/envoy/pull/3941.
         
        .google.protobuf.Duration update_merge_window = 4;
        Specified by:
        hasUpdateMergeWindow in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the updateMergeWindow field is set.
      • getUpdateMergeWindow

        public com.google.protobuf.Duration getUpdateMergeWindow()
         If set, all health check/weight/metadata updates that happen within this duration will be
         merged and delivered in one shot when the duration expires. The start of the duration is when
         the first update happens. This is useful for big clusters, with potentially noisy deploys
         that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
         or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
         cluster). Please always keep in mind that the use of sandbox technologies may change this
         behavior.
         If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
         window to 0.
         Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
         because merging those updates isn't currently safe. See
         https://github.com/envoyproxy/envoy/pull/3941.
         
        .google.protobuf.Duration update_merge_window = 4;
        Specified by:
        getUpdateMergeWindow in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        The updateMergeWindow.
      • getUpdateMergeWindowOrBuilder

        public com.google.protobuf.DurationOrBuilder getUpdateMergeWindowOrBuilder()
         If set, all health check/weight/metadata updates that happen within this duration will be
         merged and delivered in one shot when the duration expires. The start of the duration is when
         the first update happens. This is useful for big clusters, with potentially noisy deploys
         that might trigger excessive CPU usage due to a constant stream of healthcheck state changes
         or metadata updates. The first set of updates to be seen apply immediately (e.g.: a new
         cluster). Please always keep in mind that the use of sandbox technologies may change this
         behavior.
         If this is not set, we default to a merge window of 1000ms. To disable it, set the merge
         window to 0.
         Note: merging does not apply to cluster membership changes (e.g.: adds/removes); this is
         because merging those updates isn't currently safe. See
         https://github.com/envoyproxy/envoy/pull/3941.
         
        .google.protobuf.Duration update_merge_window = 4;
        Specified by:
        getUpdateMergeWindowOrBuilder in interface Cluster.CommonLbConfigOrBuilder
      • getIgnoreNewHostsUntilFirstHc

        public boolean getIgnoreNewHostsUntilFirstHc()
         If set to true, Envoy will :ref:`exclude <arch_overview_load_balancing_excluded>` new hosts
         when computing load balancing weights until they have been health checked for the first time.
         This will have no effect unless active health checking is also configured.
         
        bool ignore_new_hosts_until_first_hc = 5;
        Specified by:
        getIgnoreNewHostsUntilFirstHc in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        The ignoreNewHostsUntilFirstHc.
      • getCloseConnectionsOnHostSetChange

        public boolean getCloseConnectionsOnHostSetChange()
         If set to ``true``, the cluster manager will drain all existing
         connections to upstream hosts whenever hosts are added or removed from the cluster.
         
        bool close_connections_on_host_set_change = 6;
        Specified by:
        getCloseConnectionsOnHostSetChange in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        The closeConnectionsOnHostSetChange.
      • hasConsistentHashingLbConfig

        public boolean hasConsistentHashingLbConfig()
         Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)
         
        .envoy.config.cluster.v3.Cluster.CommonLbConfig.ConsistentHashingLbConfig consistent_hashing_lb_config = 7;
        Specified by:
        hasConsistentHashingLbConfig in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the consistentHashingLbConfig field is set.
      • hasOverrideHostStatus

        public boolean hasOverrideHostStatus()
         This controls what hosts are considered valid when using
         :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
         filters to modify the load balancing decision.
         If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
         set with an empty set of statuses then host overrides will be ignored by the load balancing.
         
        .envoy.config.core.v3.HealthStatusSet override_host_status = 8;
        Specified by:
        hasOverrideHostStatus in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        Whether the overrideHostStatus field is set.
      • getOverrideHostStatus

        public HealthStatusSet getOverrideHostStatus()
         This controls what hosts are considered valid when using
         :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
         filters to modify the load balancing decision.
         If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
         set with an empty set of statuses then host overrides will be ignored by the load balancing.
         
        .envoy.config.core.v3.HealthStatusSet override_host_status = 8;
        Specified by:
        getOverrideHostStatus in interface Cluster.CommonLbConfigOrBuilder
        Returns:
        The overrideHostStatus.
      • getOverrideHostStatusOrBuilder

        public HealthStatusSetOrBuilder getOverrideHostStatusOrBuilder()
         This controls what hosts are considered valid when using
         :ref:`host overrides <arch_overview_load_balancing_override_host>`, which is used by some
         filters to modify the load balancing decision.
         If this is unset then [UNKNOWN, HEALTHY, DEGRADED] will be applied by default. If this is
         set with an empty set of statuses then host overrides will be ignored by the load balancing.
         
        .envoy.config.core.v3.HealthStatusSet override_host_status = 8;
        Specified by:
        getOverrideHostStatusOrBuilder in interface Cluster.CommonLbConfigOrBuilder
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(ByteBuffer data)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(ByteBuffer data,
                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(com.google.protobuf.ByteString data)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(com.google.protobuf.ByteString data,
                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(byte[] data)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static Cluster.CommonLbConfig parseFrom​(byte[] data,
                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • newBuilderForType

        public Cluster.CommonLbConfig.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • toBuilder

        public Cluster.CommonLbConfig.Builder toBuilder()
        Specified by:
        toBuilder in interface com.google.protobuf.Message
        Specified by:
        toBuilder in interface com.google.protobuf.MessageLite
      • newBuilderForType

        protected Cluster.CommonLbConfig.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getParserForType

        public com.google.protobuf.Parser<Cluster.CommonLbConfig> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public Cluster.CommonLbConfig getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder