From 550f30fa4e9c1954100acb1ba880ced352f2f27e Mon Sep 17 00:00:00 2001 From: Alex Maltsev Date: Tue, 8 Jul 2025 15:49:16 +0300 Subject: [PATCH 1/2] Exposed round-robin inet address selection of the ip address to use switch. --- docs/config-app.md | 1 + .../server/spring/config/VertxConfiguration.java | 11 +++++++++-- src/main/resources/application.yaml | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/config-app.md b/docs/config-app.md index ca0f53e51a0..52c454075a6 100644 --- a/docs/config-app.md +++ b/docs/config-app.md @@ -14,6 +14,7 @@ This section can be extended against standard [Spring configuration](https://doc 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. - `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. - `vertx.enable-per-client-endpoint-metrics` - enables HTTP client metrics per destination endpoint (`host:port`) +- `vertx.round-robin-inet-address` - enables round-robin inet address selection of the ip address to use ## Server - `server.max-headers-size` - set the maximum length of all headers. diff --git a/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java b/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java index 9b5250a4233..c1686ef87f9 100644 --- a/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java @@ -2,6 +2,7 @@ import io.vertx.core.Vertx; import io.vertx.core.VertxOptions; +import io.vertx.core.dns.AddressResolverOptions; import io.vertx.core.file.FileSystem; import io.vertx.ext.dropwizard.DropwizardMetricsOptions; import io.vertx.ext.dropwizard.Match; @@ -23,7 +24,9 @@ public class VertxConfiguration { @Bean Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize, @Value("${vertx.enable-per-client-endpoint-metrics}") boolean enablePerClientEndpointMetrics, - @Value("${metrics.jmx.enabled}") boolean jmxEnabled) { + @Value("${metrics.jmx.enabled}") boolean jmxEnabled, + @Value("${vertx.round-robin-inet-address}") boolean roundRobinInetAddress) { + final DropwizardMetricsOptions metricsOptions = new DropwizardMetricsOptions() .setEnabled(true) .setJmxEnabled(jmxEnabled) @@ -32,10 +35,14 @@ Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize, metricsOptions.addMonitoredHttpClientEndpoint(new Match().setValue(".*").setType(MatchType.REGEX)); } + AddressResolverOptions addressResolverOptions = new AddressResolverOptions(); + addressResolverOptions.setRoundRobinInetAddress(roundRobinInetAddress); + final VertxOptions vertxOptions = new VertxOptions() .setPreferNativeTransport(true) .setWorkerPoolSize(workerPoolSize) - .setMetricsOptions(metricsOptions); + .setMetricsOptions(metricsOptions) + .setAddressResolverOptions(addressResolverOptions); final Vertx vertx = Vertx.vertx(vertxOptions); logger.info("Native transport enabled: {}", vertx.isNativeTransportEnabled()); diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 64ce4e516a4..f52895024d2 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -6,6 +6,7 @@ vertx: uploads-dir: file-uploads init-timeout-ms: 5000 enable-per-client-endpoint-metrics: false + round-robin-inet-address: false server: max-initial-line-length: 8092 max-headers-size: 16384 From afad2fbd5ee79c9bec8f56420617279c7e8f3dff Mon Sep 17 00:00:00 2001 From: Alex Maltsev Date: Tue, 8 Jul 2025 15:57:24 +0300 Subject: [PATCH 2/2] Made checkstyle happy. --- .../org/prebid/server/spring/config/VertxConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java b/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java index c1686ef87f9..3ac62c8fd59 100644 --- a/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java +++ b/src/main/java/org/prebid/server/spring/config/VertxConfiguration.java @@ -35,7 +35,7 @@ Vertx vertx(@Value("${vertx.worker-pool-size}") int workerPoolSize, metricsOptions.addMonitoredHttpClientEndpoint(new Match().setValue(".*").setType(MatchType.REGEX)); } - AddressResolverOptions addressResolverOptions = new AddressResolverOptions(); + final AddressResolverOptions addressResolverOptions = new AddressResolverOptions(); addressResolverOptions.setRoundRobinInetAddress(roundRobinInetAddress); final VertxOptions vertxOptions = new VertxOptions()