From 899b145fae057c2ba4fa3e7dc77eb19053326f11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Fri, 4 Mar 2022 15:18:47 +0100 Subject: [PATCH] Send HTTP sync per default --- .../benchmarks/loadgenerator/ConfigurationKeys.java | 2 ++ .../loadgenerator/EnvVarLoadGeneratorFactory.java | 5 ++++- .../benchmarks/loadgenerator/HttpRecordSender.java | 12 +++++++++++- .../benchmarks/loadgenerator/LoadGenerator.java | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/ConfigurationKeys.java b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/ConfigurationKeys.java index 3ffa7a647..efb7db61c 100644 --- a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/ConfigurationKeys.java +++ b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/ConfigurationKeys.java @@ -41,6 +41,8 @@ public final class ConfigurationKeys { public static final String HTTP_URL = "HTTP_URL"; + public static final String HTTP_ASYNC = "HTTP_ASYNC"; + public static final String PUBSUB_INPUT_TOPIC = "PUBSUB_INPUT_TOPIC"; public static final String PUBSUB_PROJECT = "PUBSUB_PROJECT"; diff --git a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/EnvVarLoadGeneratorFactory.java b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/EnvVarLoadGeneratorFactory.java index 445ccc6ed..d3883dfe7 100644 --- a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/EnvVarLoadGeneratorFactory.java +++ b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/EnvVarLoadGeneratorFactory.java @@ -119,7 +119,10 @@ class EnvVarLoadGeneratorFactory { Objects.requireNonNullElse( System.getenv(ConfigurationKeys.HTTP_URL), LoadGenerator.HTTP_URI_DEFAULT)); - recordSender = new HttpRecordSender<>(url); + final boolean async = Boolean.parseBoolean(Objects.requireNonNullElse( + System.getenv(ConfigurationKeys.HTTP_ASYNC), + Boolean.toString(LoadGenerator.HTTP_ASYNC_DEFAULT))); + recordSender = new HttpRecordSender<>(url, async); LOGGER.info("Use HTTP server as target with url '{}'.", url); } else if (target == LoadGeneratorTarget.PUBSUB) { final String project = System.getenv(ConfigurationKeys.PUBSUB_PROJECT); diff --git a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java index fbfbd526c..124f11a97 100644 --- a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java +++ b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/HttpRecordSender.java @@ -44,7 +44,17 @@ public class HttpRecordSender<T extends SpecificRecord> implements RecordSender< * @param uri the {@link URI} records should be sent to */ public HttpRecordSender(final URI uri) { - this(uri, true, List.of(HTTP_OK)); + this(uri, false, List.of(HTTP_OK)); + } + + /** + * Create a new {@link HttpRecordSender}. + * + * @param uri the {@link URI} records should be sent to + * @param async whether HTTP requests should be sent asynchronous + */ + public HttpRecordSender(final URI uri, final boolean async) { + this(uri, async, List.of(HTTP_OK)); } /** diff --git a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/LoadGenerator.java b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/LoadGenerator.java index 6866b39e5..d7ddf36e8 100644 --- a/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/LoadGenerator.java +++ b/theodolite-benchmarks/load-generator-commons/src/main/java/rocks/theodolite/benchmarks/loadgenerator/LoadGenerator.java @@ -17,6 +17,7 @@ public final class LoadGenerator { public static final LoadGeneratorTarget TARGET_DEFAULT = LoadGeneratorTarget.KAFKA; // Target: HTTP public static final String HTTP_URI_DEFAULT = "http://localhost:8080"; + public static final boolean HTTP_ASYNC_DEFAULT = false; // Target: Kafka public static final String SCHEMA_REGISTRY_URL_DEFAULT = "http://localhost:8081"; public static final String KAFKA_TOPIC_DEFAULT = "input"; // NOCS -- GitLab