* Customizing producer/consumer factories
Adding hooks by providing Producer and Consumer config
customizers to perform advanced configuration on the producer
and consumer factories.
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/960
* Addressing PR review comments
* Further PR updates
* Deprecate autoCommitOffset in favor or ackMode
Deprecate autoCommitOffset in favor of using a newly introduced consumer property ackMode.
If the consumer is not in batch mode and if ackEachRecord is enabled, then container
will use RECORD ackMode. Otherwise, use the provided ackMode using this property.
If none of these are true, then it will defer to the default setting of BATCH ackMode
set by the container.
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/877
* Address PR review comments
* Addressing PR review comments
* Fix health indicator to properly indicate partition failure
* Add new flag to control binder health indicator behavior
* Regardless of the consumer that is reading from a partition, if the binder
detects that a partition for the topic is without a leader, mark the binder
health as DOWN (if the flag is set to true).
* Remove synchronize block since only one thread executes the block
* Add Docs for the new binder flag
* Fix checkstyle issues
* Change default replication factor to -1
Binder now uses a default value of -1 for replication factor signaling the
broker to use defaults. Users who are on Kafka brokers older than 2.4,
need to set this to the previous default value of 1 used in the binder.
In either case, if there is an admin policy that requires replication factor > 1,
then that value must be used instead.
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/808
* Addressing PR review comments
* Kafka Streams metrics in the binder for Boot 2.2 users are streamlined to
reflect the Micrometer native support added with version 1.4.0 which is
available through Boot 2.3. While Boot 2.3 users will get this native support
from Micrometer, Boot 2.2 users will still rely on the custom implementation
in the binder. This commit aligns that custom implemenation more with
the native implementation.
* Disable the custom Kafka Streams metrics bean which is mentioned above
(KafkaStreamsBinderMetrics) when the application is on Boot 2.3, as this
implementation is only applicable for Boot 2.2.x.
* Update docs
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/880
Kafka Streams topology actuator endpoint had a conflict with the JMX exporter
and was causing some IDE issues. Renming this endpoint to kafkastreamstopology.
Renaming the underlying methods in this actuator endpoint implentation.
Updating docs.
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/895
* Kafka Streams - DLQ control per consumer binding
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/800
* Fine-grained DLQ control and deserialization exception handlers per input binding
* Deprecate KafkaStreamsBinderConfigurationProperties.SerdeError in preference to the
new enum `KafkaStreamsBinderConfigurationProperties.DeserializationExceptionHandler`
based properties
* Add tests, modifying docs
* Addressing PR review comments
Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/715
When using transactions, binder retry, dlq cannot be used because the retry
runs within the transaction, which is undesirable if there is another resource
involved; also publishing to the DLQ could be rolled back.
Use the retry properties to configure an `AfterRollbackProcessor` to perform the
retry and DLQ publishing after the transaction has rolled back.
Add docs; move the container customizer invocation to the end.
* Reintrouce BinderHeaderMapper
Provide a custom header mapper that is identical to the DefaultKafkaHeaderMapper in Spring Kafka.
This is to address some interoperability issues between Spring Cloud Stream 3.0.x and 2.x apps,
where mime types in the header are not de-serialized properly. This custom BinderHeaderMapper
will be eventually deprecated and removed once the fixes are in Spring Kafka.
Resolves#796
* Addressing review
* polishing