GH-3616: Defer default topic resolution to the ReplyingKafkaTemplate
Fixes: #3616 Issue link: https://github.com/spring-projects/spring-integration/issues/3616 The `KafkaProducerMessageHandler` uses an unnecessary logic to determine a default topic/partition. It is better to push such a logic down to the `ReplyingKafkaTemplate` as more general solution * Remove `KafkaProducerMessageHandler.getReplyTopic()` logic altogether * Clean up tests for removed logic * Add `exclude group: 'ch.qos.logback'` to be able to control logging for SI-Kafka module * Remove out-dated sentence from `kafka.adoc`
This commit is contained in:
@@ -468,9 +468,6 @@ The outbound gateway is for request/reply operations.
|
||||
It differs from most Spring Integration gateways in that the sending thread does not block in the gateway, and the reply is processed on the reply listener container thread.
|
||||
If your code invokes the gateway behind a synchronous https://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html#gateway[Messaging Gateway], the user thread blocks there until the reply is received (or a timeout occurs).
|
||||
|
||||
IMPORTANT: The gateway does not accept requests until the reply container has been assigned its topics and partitions.
|
||||
It is suggested that you add a `ConsumerRebalanceListener` to the template's reply container properties and wait for the `onPartitionsAssigned` call before sending messages to the gateway.
|
||||
|
||||
The `KafkaProducerMessageHandler` `sendTimeoutExpression` default is `delivery.timeout.ms` Kafka producer property `+ 5000` so that the actual Kafka error after a timeout is propagated to the application, instead of a timeout generated by this framework.
|
||||
This has been changed for consistency because you may get unexpected behavior (Spring may time out the `send()`, while it is actually, eventually, successful).
|
||||
IMPORTANT: That timeout is 120 seconds by default, so you may wish to reduce it to get more timely failures.
|
||||
|
||||
Reference in New Issue
Block a user