Skip to content

Commit 51658c4

Browse files
authored
Core: Add toggle to enable round-robin inet address selection of the ip address to use (#4048)
1 parent 9d07434 commit 51658c4

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

docs/config-app.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ This section can be extended against standard [Spring configuration](https://doc
1414
This parameter exists to allow to change the location of the directory Vert.x will create because it will and there is no way to make it not.
1515
- `vertx.init-timeout-ms` - time to wait for asynchronous initialization steps completion before considering them stuck. When exceeded - exception is thrown and Prebid Server stops.
1616
- `vertx.enable-per-client-endpoint-metrics` - enables HTTP client metrics per destination endpoint (`host:port`)
17+
- `vertx.round-robin-inet-address` - enables round-robin inet address selection of the ip address to use
1718

1819
## Server
1920
- `server.max-headers-size` - set the maximum length of all headers.

src/main/java/org/prebid/server/spring/config/VertxConfiguration.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.vertx.core.Vertx;
44
import io.vertx.core.VertxOptions;
5+
import io.vertx.core.dns.AddressResolverOptions;
56
import io.vertx.core.file.FileSystem;
67
import io.vertx.ext.dropwizard.DropwizardMetricsOptions;
78
import io.vertx.ext.dropwizard.Match;
@@ -23,7 +24,9 @@ public class VertxConfiguration {
2324
@Bean
2425
Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize,
2526
@Value("${vertx.enable-per-client-endpoint-metrics}") boolean enablePerClientEndpointMetrics,
26-
@Value("${metrics.jmx.enabled}") boolean jmxEnabled) {
27+
@Value("${metrics.jmx.enabled}") boolean jmxEnabled,
28+
@Value("${vertx.round-robin-inet-address}") boolean roundRobinInetAddress) {
29+
2730
final DropwizardMetricsOptions metricsOptions = new DropwizardMetricsOptions()
2831
.setEnabled(true)
2932
.setJmxEnabled(jmxEnabled)
@@ -32,10 +35,14 @@ Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize,
3235
metricsOptions.addMonitoredHttpClientEndpoint(new Match().setValue(".*").setType(MatchType.REGEX));
3336
}
3437

38+
final AddressResolverOptions addressResolverOptions = new AddressResolverOptions();
39+
addressResolverOptions.setRoundRobinInetAddress(roundRobinInetAddress);
40+
3541
final VertxOptions vertxOptions = new VertxOptions()
3642
.setPreferNativeTransport(true)
3743
.setWorkerPoolSize(workerPoolSize)
38-
.setMetricsOptions(metricsOptions);
44+
.setMetricsOptions(metricsOptions)
45+
.setAddressResolverOptions(addressResolverOptions);
3946

4047
final Vertx vertx = Vertx.vertx(vertxOptions);
4148
logger.info("Native transport enabled: {}", vertx.isNativeTransportEnabled());

src/main/resources/application.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ vertx:
66
uploads-dir: file-uploads
77
init-timeout-ms: 5000
88
enable-per-client-endpoint-metrics: false
9+
round-robin-inet-address: false
910
server:
1011
max-initial-line-length: 8092
1112
max-headers-size: 16384

0 commit comments

Comments
 (0)