From fcc9b53308f6bc12c18c285b5ec16aa749572707 Mon Sep 17 00:00:00 2001 From: Ozan Gunalp Date: Thu, 11 Aug 2022 12:30:15 +0300 Subject: [PATCH] Bump kafka3.version to 3.2.1 Configure redpanda dev service to enable idempotence and transactions by default Fix kafka streams test --- bom/application/pom.xml | 2 +- docs/src/main/asciidoc/kafka-dev-services.adoc | 12 ++++++------ docs/src/main/asciidoc/kafka.adoc | 7 +------ .../client/deployment/RedPandaBuildTimeConfig.java | 2 +- .../it/kafka/streams/KafkaStreamsPropertiesTest.java | 2 +- 5 files changed, 10 insertions(+), 15 deletions(-) diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 1be4e177d50cb..e69b5ba3a9780 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -138,7 +138,7 @@ 1.0.3 3.5.0.Final 1.7.0 - 3.1.0 + 3.2.1 1.8.0 1.1.8.4 0.100.0 diff --git a/docs/src/main/asciidoc/kafka-dev-services.adoc b/docs/src/main/asciidoc/kafka-dev-services.adoc index 2bea2abbfe50c..a56f2c4df94d9 100644 --- a/docs/src/main/asciidoc/kafka-dev-services.adoc +++ b/docs/src/main/asciidoc/kafka-dev-services.adoc @@ -84,15 +84,15 @@ without trying to re-partition the existing topic to a different number of parti You can configure timeout for Kafka admin client calls used in topic creation using `quarkus.kafka.devservices.topic-partitions-timeout`, it defaults to 2 seconds. -[[redpanda-enabling-transactions]] -== Enabling transactions +[[redpanda-transactions]] +== Transactional and Idempotent producers support -By default, the Red Panda broker does not act as a transaction coordinator. -To enable transactions, set: +By default, the Red Panda broker is configured to enable transactions and idempotence features. +You can disable those using: [source, properties] ---- -quarkus.kafka.devservices.redpanda.transaction-enabled=true +quarkus.kafka.devservices.redpanda.transaction-enabled=false ---- -NOTE: It also enables producer idempotence support. \ No newline at end of file +NOTE: Redpanda transactions does not support exactly-once processing. diff --git a/docs/src/main/asciidoc/kafka.adoc b/docs/src/main/asciidoc/kafka.adoc index aabd50fd86c28..c313486b7512a 100644 --- a/docs/src/main/asciidoc/kafka.adoc +++ b/docs/src/main/asciidoc/kafka.adoc @@ -61,7 +61,7 @@ implementation("io.quarkus:quarkus-smallrye-reactive-messaging-kafka") [NOTE] ==== -The extension includes `kafka-clients` version 3.1.0 as a transitive dependency and is compatible with Kafka brokers version 2.x. +The extension includes `kafka-clients` version 3.2.1 as a transitive dependency and is compatible with Kafka brokers version 2.x. ==== == Configuring Smallrye Kafka Connector @@ -1121,11 +1121,6 @@ If you'd like to consume records only written and committed inside a Kafka trans mp.messaging.incoming.prices-in.isolation.level=read_committed ---- -[NOTE] -==== -If you are using Dev Services for Kafka using Redpanda, you need to <>. -==== - == Processing Messages Applications streaming data often need to consume some events from a topic, process them and publish the result to a different topic. diff --git a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/RedPandaBuildTimeConfig.java b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/RedPandaBuildTimeConfig.java index ed319a4a85009..f8e7ebfbdec03 100644 --- a/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/RedPandaBuildTimeConfig.java +++ b/extensions/kafka-client/deployment/src/main/java/io/quarkus/kafka/client/deployment/RedPandaBuildTimeConfig.java @@ -26,6 +26,6 @@ public class RedPandaBuildTimeConfig { * KIP-360 (Improve reliability of * idempotent/transactional producer) are not supported. */ - @ConfigItem(defaultValue = "false") + @ConfigItem(defaultValue = "true") public boolean transactionEnabled; } diff --git a/integration-tests/kafka-streams/src/test/java/io/quarkus/it/kafka/streams/KafkaStreamsPropertiesTest.java b/integration-tests/kafka-streams/src/test/java/io/quarkus/it/kafka/streams/KafkaStreamsPropertiesTest.java index 1cd4c638c2ad3..cb2f1550cbe13 100644 --- a/integration-tests/kafka-streams/src/test/java/io/quarkus/it/kafka/streams/KafkaStreamsPropertiesTest.java +++ b/integration-tests/kafka-streams/src/test/java/io/quarkus/it/kafka/streams/KafkaStreamsPropertiesTest.java @@ -24,7 +24,7 @@ public class KafkaStreamsPropertiesTest { @Test public void testProperties() throws Exception { // reflection hack ... no other way to get raw props ... - Field configField = KafkaStreams.class.getDeclaredField("config"); + Field configField = KafkaStreams.class.getDeclaredField("applicationConfigs"); configField.setAccessible(true); StreamsConfig config = (StreamsConfig) configField.get(streams);