All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.vertx.http.runtime.TrafficShapingConfig Maven / Gradle / Ivy

package io.quarkus.vertx.http.runtime;

import java.time.Duration;
import java.util.Optional;

import io.quarkus.runtime.annotations.ConfigGroup;
import io.quarkus.runtime.annotations.ConfigItem;
import io.quarkus.runtime.configuration.MemorySize;

/**
 * Configure the global traffic shaping functionality.
 * It allows you to limit the bandwidth across all channels, regardless of the number of open channels.
 * This can be useful when you want to control the overall network traffic to prevent congestion
 * or prioritize certain types of traffic.
 * 

* The traffic shaping allows you to configure various parameters, such as write and read limitations (in bytes per * second), check interval (the delay between two computations of the bandwidth), and maximum time to wait. * The check interval represents the period at which the traffic is computed, and a higher interval may result in * less precise traffic shaping. It is recommended to set a positive value for the check interval, even if it is high, * to ensure traffic shaping without accounting. A suggested value is something close to 5 or 10 minutes. *

* The `outbound-global-bandwidth` and `inbound-global-bandwidth` parameters represent the maximum number of bytes per second * for write and read operations, respectively. * Additionally, you can set the maximum time to wait, which specifies an upper bound for time shaping. * By default, it is set to 15 seconds. */ @ConfigGroup public class TrafficShapingConfig { /** * Enables the traffic shaping. */ @ConfigItem(defaultValue = "false") public boolean enabled; /** * Set bandwidth limit in bytes per second for inbound connections. * If not set, no limits are applied. */ @ConfigItem public Optional inboundGlobalBandwidth; /** * Set bandwidth limit in bytes per second for outbound connections. * If not set, no limits are applied. */ @ConfigItem public Optional outboundGlobalBandwidth; /** * Set the maximum delay to wait in case of traffic excess. * Default is 15s. Must be less than the HTTP timeout. */ @ConfigItem public Optional maxDelay; /** * Set the delay between two computations of performances for channels. * If set to 0, no stats are computed. * Despite 0 is accepted (no accounting), it is recommended to set a positive value for the check interval, * even if it is high since the precision of the traffic shaping depends on the period where the traffic is computed. * In this case, a suggested value is something close to 5 or 10 minutes. *

* If not default, it defaults to 1s. */ @ConfigItem public Optional checkInterval; /** * Set the maximum global write size in bytes per second allowed in the buffer globally for all channels before write * are suspended. * The default value is 400 MB. */ @ConfigItem public Optional peakOutboundGlobalBandwidth; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy