diff --git a/Directory.Build.props b/Directory.Build.props index 4de86b021..72c38ef7d 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,7 +1,7 @@ - 4.4.0$(BaseVersionSuffix) + 4.4.1$(BaseVersionSuffix) 1 $(BaseVersionSuffix) diff --git a/docs/releases.md b/docs/releases.md index 69fd0f66f..d66a23971 100644 --- a/docs/releases.md +++ b/docs/releases.md @@ -4,6 +4,12 @@ uid: releases # Releases +## [4.4.1](https://github.com/BEagle1984/silverback/releases/tag/v4.4.1) + +### What's new + +* Upgrade to [Confluent.Kafka 2.3.0](https://github.com/confluentinc/confluent-kafka-dotnet/releases/tag/v2.3.0) + ## [4.4.0](https://github.com/BEagle1984/silverback/releases/tag/v4.4.0) ### What's new diff --git a/src/Silverback.Integration.Kafka.SchemaRegistry/Silverback.Integration.Kafka.SchemaRegistry.csproj b/src/Silverback.Integration.Kafka.SchemaRegistry/Silverback.Integration.Kafka.SchemaRegistry.csproj index b034c049a..b64b9975a 100644 --- a/src/Silverback.Integration.Kafka.SchemaRegistry/Silverback.Integration.Kafka.SchemaRegistry.csproj +++ b/src/Silverback.Integration.Kafka.SchemaRegistry/Silverback.Integration.Kafka.SchemaRegistry.csproj @@ -31,8 +31,8 @@ This package adds the support for Apache Avro and the schema registry on top of - - + + diff --git a/src/Silverback.Integration.Kafka/Messaging/Configuration/Kafka/ConfluentClientConfigProxies.cs b/src/Silverback.Integration.Kafka/Messaging/Configuration/Kafka/ConfluentClientConfigProxies.cs index 07d3582bb..f2ae7b0f7 100644 --- a/src/Silverback.Integration.Kafka/Messaging/Configuration/Kafka/ConfluentClientConfigProxies.cs +++ b/src/Silverback.Integration.Kafka/Messaging/Configuration/Kafka/ConfluentClientConfigProxies.cs @@ -148,8 +148,8 @@ public int? MetadataMaxAgeMs } /// - /// When a topic loses its leader a new metadata request will be enqueued with this initial interval, exponentially increasing until the topic metadata has been refreshed. This is used to recover quickly from transitioning leader brokers. - ///

default: 250 + /// When a topic loses its leader a new metadata request will be enqueued immediately and then with this initial interval, exponentially increasing upto `retry.backoff.max.ms`, until the topic metadata has been refreshed. If not set explicitly, it will be defaulted to `retry.backoff.ms`. This is used to recover quickly from transitioning leader brokers. + ///

default: 100 ///
importance: low ///
public int? TopicMetadataRefreshFastIntervalMs @@ -379,7 +379,7 @@ public bool? EnableRandomSeed } /// - /// Log broker disconnects. It might be useful to turn this off when interacting with 0.9 brokers with an aggressive `connection.max.idle.ms` value. + /// Log broker disconnects. It might be useful to turn this off when interacting with 0.9 brokers with an aggressive `connections.max.idle.ms` value. ///

default: true ///
importance: low ///
@@ -445,7 +445,7 @@ public string BrokerVersionFallback } /// - /// Allow automatic topic creation on the broker when subscribing to or assigning non-existent topics. The broker must also be configured with `auto.create.topics.enable=true` for this configuraiton to take effect. Note: The default value (false) is different from the Java consumer (true). Requires broker version >= 0.11.0.0, for older broker versions only the broker configuration applies. + /// Allow automatic topic creation on the broker when subscribing to or assigning non-existent topics. The broker must also be configured with `auto.create.topics.enable=true` for this configuration to take effect. Note: the default value (true) for the producer is different from the default value (false) for the consumer. Further, the consumer default value is different from the Java consumer (true), and this property is not supported by the Java producer. Requires broker version >= 0.11.0.0, for older broker versions only the broker configuration applies. ///

default: false ///
importance: low ///
@@ -621,7 +621,9 @@ public string SslKeystorePassword } /// - /// Gets the comma-separated list of OpenSSL 3.0.x implementation providers. + /// Comma-separated list of OpenSSL 3.0.x implementation providers. E.g., "default,legacy". + ///

default: '' + ///
importance: low ///
public string SslProviders { @@ -630,7 +632,7 @@ public string SslProviders } /// - /// Path to OpenSSL engine library. OpenSSL >= 1.1.0 required. + /// **DEPRECATED** Path to OpenSSL engine library. OpenSSL >= 1.1.x required. DEPRECATED: OpenSSL engine support is deprecated and should be replaced by OpenSSL 3 providers. ///

default: '' ///
importance: low ///
@@ -664,7 +666,7 @@ public bool? EnableSslCertificateVerification /// /// Endpoint identification algorithm to validate broker hostname using broker certificate. https - Server (broker) hostname verification as specified in RFC2818. none - No endpoint verification. OpenSSL >= 1.0.2 required. - ///

default: none + ///

default: https ///
importance: low ///
public SslEndpointIdentificationAlgorithm? SslEndpointIdentificationAlgorithm @@ -832,7 +834,7 @@ public string SaslOauthbearerExtensions ///

default: '' ///
importance: low /// - [SuppressMessage("Design", "CA1056:URI-like properties should not be strings", Justification = "Same as Confluent.Kafka")] + [SuppressMessage("Design", "CA1056:URI-like properties should not be strings", Justification = "proxied")] public string SaslOauthbearerTokenEndpointUrl { get => ConfluentConfig.SaslOauthbearerTokenEndpointUrl; @@ -861,6 +863,17 @@ public string ClientRack set => ConfluentConfig.ClientRack = value; } + /// + /// Controls how the client uses DNS lookups. By default, when the lookup returns multiple IP addresses for a hostname, they will all be attempted for connection before the connection is considered failed. This applies to both bootstrap and advertised servers. If the value is set to `resolve_canonical_bootstrap_servers_only`, each entry will be resolved and expanded into a list of canonical names. NOTE: Default here is different from the Java client's default behavior, which connects only to the first IP address returned for a hostname. + ///

default: use_all_dns_ips + ///
importance: low + ///
+ public ClientDnsLookup? ClientDnsLookup + { + get => ConfluentConfig.ClientDnsLookup; + set => ConfluentConfig.ClientDnsLookup = value; + } + /// /// The maximum length of time (in milliseconds) before a cancellation request /// is acted on. Low values may result in measurably higher CPU usage. @@ -1083,6 +1096,17 @@ public int? FetchWaitMaxMs set => ConfluentConfig.FetchWaitMaxMs = value; } + /// + /// How long to postpone the next fetch request for a topic+partition in case the current fetch queue thresholds (queued.min.messages or queued.max.messages.kbytes) have been exceded. This property may need to be decreased if the queue thresholds are set low and the application is experiencing long (~1s) delays between messages. Low values may increase CPU utilization. + ///

default: 1000 + ///
importance: medium + ///
+ public int? FetchQueueBackoffMs + { + get => ConfluentConfig.FetchQueueBackoffMs; + set => ConfluentConfig.FetchQueueBackoffMs = value; + } + /// /// Initial maximum number of bytes per topic+partition to request when fetching messages from the broker. If the client encounters a message larger than this value it will gradually try to increase it until the entire message can be fetched. ///

default: 1048576 @@ -1232,11 +1256,7 @@ public bool? EnableDeliveryReports public string DeliveryReportFields { get => ConfluentConfig.DeliveryReportFields; - set - { - if (value != null) - ConfluentConfig.DeliveryReportFields = value; - } + set => ConfluentConfig.DeliveryReportFields = value; } /// @@ -1328,7 +1348,7 @@ public bool? EnableGaplessGuarantee } /// - /// Maximum number of messages allowed on the producer queue. This queue is shared by all topics and partitions. + /// Maximum number of messages allowed on the producer queue. This queue is shared by all topics and partitions. A value of 0 disables this limit. ///

default: 100000 ///
importance: high ///
@@ -1372,7 +1392,7 @@ public int? MessageSendMaxRetries } /// - /// The backoff time in milliseconds before retrying a protocol request. + /// The backoff time in milliseconds before retrying a protocol request, this is the first backoff time, and will be backed off exponentially until number of retries is exhausted, and it's capped by retry.backoff.max.ms. ///

default: 100 ///
importance: medium ///
@@ -1382,6 +1402,17 @@ public int? RetryBackoffMs set => ConfluentConfig.RetryBackoffMs = value; } + /// + /// The max backoff time in milliseconds before retrying a protocol request, this is the atmost backoff allowed for exponentially backed off requests. + ///

default: 1000 + ///
importance: medium + ///
+ public int? RetryBackoffMaxMs + { + get => ConfluentConfig.RetryBackoffMaxMs; + set => ConfluentConfig.RetryBackoffMaxMs = value; + } + /// /// The threshold of outstanding not yet transmitted broker requests needed to backpressure the producer's message accumulator. If the number of not yet transmitted requests equals or exceeds this number, produce request creation that would have otherwise been triggered (for example, in accordance with linger.ms) will be delayed. A lower number yields larger and more effective batches. A higher value can improve latency when using compression on slow machines. ///

default: 1 diff --git a/src/Silverback.Integration.Kafka/Silverback.Integration.Kafka.csproj b/src/Silverback.Integration.Kafka/Silverback.Integration.Kafka.csproj index 7a2b0c927..5f34cc6b3 100644 --- a/src/Silverback.Integration.Kafka/Silverback.Integration.Kafka.csproj +++ b/src/Silverback.Integration.Kafka/Silverback.Integration.Kafka.csproj @@ -31,7 +31,7 @@ This package contains an implementation of Silverback.Integration for the popula - + diff --git a/tools/Silverback.Tools.KafkaConfigClassGenerator/Silverback.Tools.KafkaConfigClassGenerator.csproj b/tools/Silverback.Tools.KafkaConfigClassGenerator/Silverback.Tools.KafkaConfigClassGenerator.csproj index fe48b5f89..412b9f01d 100644 --- a/tools/Silverback.Tools.KafkaConfigClassGenerator/Silverback.Tools.KafkaConfigClassGenerator.csproj +++ b/tools/Silverback.Tools.KafkaConfigClassGenerator/Silverback.Tools.KafkaConfigClassGenerator.csproj @@ -7,7 +7,7 @@ - + lib/netcoreapp2.1/*.xml